- 27 Nov, 2009 1 commit
-
-
/cp 2009-11-27 Paolo Carlini <paolo.carlini@oracle.com> PR c++/35112 * pt.c (print_overloaded_functions): New. (print_candidates): Call the latter. * parser.c (cp_parser_class_name): Do not duplicate the diagnostics after the cp_parser_lookup_name call. /testsuite 2009-11-27 Paolo Carlini <paolo.carlini@oracle.com> PR c++/35112 * g++.dg/parse/crash53.C: New. * g++.dg/parse/error17.C: Adjust, error messages are not duplicated anymore. * g++.dg/template/dtor7.C: Remove xfail-ed dg-bogus directives. From-SVN: r154698
Paolo Carlini committed
-
- 26 Nov, 2009 3 commits
-
-
PR c++/42026, DR 239 * parser.c (cp_parser_postfix_expression): A local extern also prevents arg-dependent lookup. From-SVN: r154686
Jason Merrill committed -
From-SVN: r154684
Gabriel Dos Reis committed -
re PR c++/10690 ([DR 115] Even when used within typeid(), a template-id generating an overload set with only one function should silently decay to a pointer to function) PR c++/10690 * rtti.c (get_tinfo_decl_dynamic): Call resolve_nondeduced_context. From-SVN: r154675
Jason Merrill committed
-
- 24 Nov, 2009 2 commits
-
-
PR c++/42137 * parser.c (cp_parser_mem_initializer_id): Pass typename_type to cp_parser_class_name. (cp_parser_unqualified_id): Same, rather than class_type. PR c++/11764 * parser.c (cp_parser_expression_statement): Give helpful error for constructor name used as type. From-SVN: r154519
Jason Merrill committed -
* pt.c (determine_specialization): Give helpful error about missing "template<>". From-SVN: r154518
Jason Merrill committed
-
- 23 Nov, 2009 2 commits
-
-
PR middle-end/42095 * tree.c: Include cgraph.h. (cp_fix_function_decl_p): Don't return true for same_body aliases. * Make-lang.in (cp/tree.o): Depend on $(CGRAPH_H). From-SVN: r154449
Jakub Jelinek committed -
Fix PR c++/14777 gcc/cp/ChangeLog: PR c++/14777 * cp-tree.def <TEMPLATE_INFO>: Declare new kind of tree node. * cp-tree.h (struct tree_template_info, struct qualified_typedef_usage_s): New. (cp_tree_node_structure_enum): add TS_CP_TEMPLATE_INFO. (union lang_tree_node): Add template_info. (TI_TEMPLATE, TI_ARGS, TI_TYPEDEFS_NEEDING_ACCESS_CHECKING): Adjust. (build_template_info): Declare. (get_types_needing_access_check): Adjust return type. (add_typedef_to_current_template_for_access_check): Declare. * cp-objcp-common.c (cp_tree_size): Handle TEMPLATE_INFO. * semantics.c (add_typedef_to_current_template_for_access_check): Split from ... (check_accessibility_of_qualified_id): ... here. * decl.c (make_typename_type): Use it. * pt.c (build_template_info): Define. (check_explicit_specialization, find_parameter_packs_r, push_template_decl_real, lookup_template_class, for_each_template_parm_r, tsubst_decl, tsubst): Use build_template_info. (get_types_needing_access_check): Adjust return type. (append_type_to_template_for_access_check_1): Record the location of the usage point of the typedef. Adjust to TEMPLATE_INFO. (append_type_to_template_for_access_check): Add new location parameter. Pass it to append_type_to_template_for_access_check_1. Adjust to TEMPLATE_INFO. (perform_typedefs_access_check): Temporarily set input_location to the usage point of the typedef we are checking access for. Adjust to new TEMPLATE_INFO tree node. * tree.c (bind_template_template_parm): Use build_template_info. * call.c (add_template_candidate_real): Likewise. * decl.c (grokfndecl): Likewise. (cp_tree_node_structure): Handle TEMPLATE_INFO. gcc/testsuite/ChangeLog: PR c++/14777 * g++.dg/template/typedef13.C: Adjust. * g++.dg/template/typedef19.C: Adjust. * g++.dg/template/typedef20.C: Adjust. * g++.dg/template/typedef22.C: New test. From-SVN: r154443
Dodji Seketeli committed
-
- 21 Nov, 2009 1 commit
-
-
PR c++/9050, DR 147, DR 318 * parser.c (cp_parser_lookup_name): If the name matches the explicit class scope, we're naming the constructor. (cp_parser_constructor_declarator_p): Just use cp_parser_unqualified_id if we have a nested-name-specifier. (cp_parser_direct_declarator): Handle getting an overload set as a constructor declarator. (cp_parser_unqualified_id): Avoid looking up the constructor when naming the destructor. (cp_parser_diagnose_invalid_type_name): Give good diagnostic for improper use of constructor as template. * typeck.c (finish_class_member_access_expr): Give good diagnostic about calling constructor. * error.c (dump_aggr_type): Don't print A::A for injected-class-name. From-SVN: r154403
Jason Merrill committed
-
- 20 Nov, 2009 5 commits
-
-
gcc/cp/ 2009-11-20 Simon Martin <simartin@users.sourceforge.net> PR c++/38646 * pt.c (process_partial_specialization): Do not turn wrongly located parameter pack arguments into error_mark_node. Split too long lines into two. gcc/testsuite/ 2009-11-20 Simon Martin <simartin@users.sourceforge.net> PR c++/38646 * g++.dg/cpp0x/pr38646.C: New test. From-SVN: r154378
Simon Martin committed -
cp/ 2009-11-20 Paolo Carlini <paolo.carlini@oracle.com> PR c++/42060 * except.c (build_throw): Check the tree returned by decay_conversion for error_mark_node. testsuite/ 2009-11-20 Paolo Carlini <paolo.carlini@oracle.com> PR c++/42060 * g++.dg/cpp0x/initlist28.C: New. From-SVN: r154371
Paolo Carlini committed -
/cp 2009-11-20 Shujing Zhao <pearly.zhao@oracle.com> PR c++/29017 * cp-tree.h (composite_pointer_operation): New type. (composite_pointer_type): Adjust prototype with new argument. * typeck.c (composite_pointer_type): Accept composite_pointer_operation as argument and emit diagnostic to be visible to gettext and checked at compile time. (composite_pointer_type_r): Likewise. (common_pointer_type): Update call to composite_pointer_type. (cp_build_binary_op): Likewise. * call.c (build_conditional_expr): Likewise. /testsuite 2009-11-20 Shujing Zhao <pearly.zhao@oracle.com> * g++.old-deja/g++.jason/rfg20.C: Make expected dg-error strings explicit. * g++.old-deja/g++.rfg/00321_01-.C: Likewise. * g++.old-deja/g++.rfg/00324_02-.C: Likewise. * g++.old-deja/g++.law/typeck1.C: Likewise. * g++.old-deja/g++.bugs/900324_02.C: Likewise. * g++.dg/conversion/ptrmem9.C: Likewise. * g++.dg/expr/cond2.C: Likewise. From-SVN: r154360
Shujing Zhao committed -
PR c++/42115 * call.c (build_op_delete_call): Don't complain about using op delete (void *, size_t) for placement delete if there's an op delete (void *). From-SVN: r154357
Jason Merrill committed -
DR 176 permissiveness gcc/ * dwarf2out.c (get_context_die): Take TYPE_MAIN_VARIANT. gcc/cp/ * class.c (build_self_reference): Call set_underlying_type. * decl.c (check_elaborated_type_specifier): Don't complain about injected-class-name. (type_is_deprecated): Use TYPE_MAIN_VARIANT. * pt.c (convert_template_argument): Handle injected-class-name used as template template argument. * typeck2.c (abstract_virtuals_error): Use TYPE_MAIN_VARIANT. From-SVN: r154354
Jason Merrill committed
-
- 19 Nov, 2009 1 commit
-
-
PR c++/561 * decl.c (static_fn_type): Split out... (revert_static_member_fn): ...from here. * cp-tree.h: Declare it. * class.c (resolve_address_of_overloaded_function): Use it to compare pointers to member functions. * typeck.c (build_static_cast_1): Call instantiate_type. From-SVN: r154336
Jason Merrill committed
-
- 18 Nov, 2009 2 commits
-
-
/cp 2009-11-18 Shujing Zhao <pearly.zhao@oracle.com> PR c++/40892 * error.c (maybe_warn_cpp0x): Accept enum cpp0x_warn_str as argument. (maybe_warn_variadic_templates): Update the maybe_warn_cpp0x calls to match the new declaration. * cp-tree.h (cpp0x_warn_str): New type. (maybe_warn_cpp0x): Adjust prototype with new argument. * call.c (reference_binding): Update the maybe_warn_cpp0x calls. * decl.c (reshape_init_r, check_initializer, grokdeclarator): Likewise. * parser.c (cp_parser_primary_expression) (cp_parser_parenthesized_expression_list, cp_parser_new_initializer) (cp_parser_assignment_expression, cp_parser_condition) (cp_parser_jump_statement, cp_parser_mem_initializer) (cp_parser_simple_type_specifier, cp_parser_elaborated_type_specifier) (cp_parser_enum_specifier, cp_parser_initializer) (cp_parser_pure_specifier, cp_parser_functional_cast): Likewise. /testsuite 2009-11-18 Shujing Zhao <pearly.zhao@oracle.com> * g++.old-deja/g++.other/crash28.C: Make expected dg-error strings explicit. * g++.dg/inherit/error4.C: Likewise. * g++.dg/template/crash90.C: Likewise. From-SVN: r154288
Shujing Zhao committed -
PR c++/3187 * cgraph.h (struct cgraph_node): Add same_body and same_body_alias fields. (cgraph_same_body_alias, cgraph_remove_same_body_alias): New prototypes. * cgraphunit.c (cgraph_expand_function, cgraph_emit_thunks, cgraph_materialize_all_clones): Handle same_body aliases. * cgraph.c (cgraph_allocate_node): New function. (cgraph_create_node): Use it. (cgraph_node_for_decl, cgraph_node, cgraph_get_node, cgraph_node_for_asm, cgraph_remove_node): Handle same_body aliases. (cgraph_same_body_alias, cgraph_remove_same_body_alias): New functions. * lto-cgraph.c (lto_output_node): Stream out same_body aliases. (input_node): Stream in same_body aliases. * lto-symtab.c (lto_cgraph_replace_node): Clear node pointers for same_body aliases. (lto_symtab_merge_cgraph_nodes_1): Handle same_body aliases. * cp-tree.h (expand_or_defer_fn_1): New prototype. * decl2.c (cp_write_global_declarations): Mark as !DECL_EXTERNAL also all same_body aliases. * semantics.c (expand_or_defer_fn): Move most of the function except registering with cgraph to ... (expand_or_defer_fn_1): ... here. New function. * optimize.c: Include cgraph.h. (maybe_clone_body): If in charge parm is not used and both base and complete clones are created and are not comdat, tell cgraph they have the same body. * Make-lang.in (cp/optimize.o): Depend on $(CGRAPH_H). * g++.dg/abi/mangle26.C: Also match *C2* definition. * g++.dg/abi/mangle27.C: Likewise. * g++.dg/abi/mangle28.C: Likewise. * g++.dg/abi/mangle29.C: Likewise. From-SVN: r154284
Jakub Jelinek committed
-
- 17 Nov, 2009 4 commits
-
-
cp/ 2009-11-17 Paolo Carlini <paolo.carlini@oracle.com> PR c++/42058 * typeck2.c (digest_init_r): Check init for error_operand_p. * decl.c (reshape_init_class): Check return value of reshape_init_r for error_mark_node. testsuite/ 2009-11-17 Paolo Carlini <paolo.carlini@oracle.com> PR c++/42058 * testsuite/g++.dg/init/array26.C: New. * testsuite/g++.dg/init/array27.C: Likewise. * testsuite/g++.old-deja/g++.benjamin/13478.C: Adjust dg-errors. From-SVN: r154267
Paolo Carlini committed -
PR c++/42061 * call.c (reference_binding): Return NULL for initializer list with error operand inside of it. * g++.dg/cpp0x/initlist27.C: New test. From-SVN: r154238
Jakub Jelinek committed -
PR c++/42059 * typeck.c (cp_build_modify_expr): For initializer list call check_array_initializer to make sure lhs isn't a VLA. * g++.dg/cpp0x/initlist26.C: New test. From-SVN: r154237
Jakub Jelinek committed -
PR c++/189, c++/9937, c++/13950, DR 176 * g++.dg/tc1/dr176.C: Adjust. From-SVN: r154235
Jason Merrill committed
-
- 16 Nov, 2009 3 commits
-
-
PR c++/13950, DR 176 * search.c (lookup_field_r): Allow lookup to find the injected-class-name from a template base. (template_self_reference_p): Remove. * decl.c (make_typename_type): Diagnose ambiguity. Use maybe_get_template_decl_from_type_decl. * parser.c (cp_parser_template_name): Pass true to is_template rather than use maybe_get_template_decl_from_type_decl. (cp_parser_lookup_name): Use maybe_get_template_decl_from_type_decl. * pt.c (maybe_get_template_decl_from_type_decl): Handle ambiguity. Use DECL_SELF_REFERENCE_P. * parser.c (cp_parser_parse_and_diagnose_invalid_type_name): Avoid duplicate ambiguity error. * error.c (dump_decl): Don't say "typedef" for injected-class-name. * pt.c (convert_template_argument): Tweak logic. From-SVN: r154223
Jason Merrill committed -
cp/ 2009-11-16 Paolo Carlini <paolo.carlini@oracle.com> PR c++/42055 * pt.c (determine_specialization): Assign to candidates the return value of the chainon called before print_candidates. testsuite/ 2009-11-16 Paolo Carlini <paolo.carlini@oracle.com> PR c++/42055 * testsuite/g++.dg/template/crash92.C: New. From-SVN: r154202
Paolo Carlini committed -
cp/ 2009-11-16 Paolo Carlini <paolo.carlini@oracle.com> PR c++/32056 * decl.h (enum decl_context): Add TPARM enumerator. * decl.c (grokdeclarator): Per 14.1/2, error out if a storage class is specified in a template parameter declaration. * parser.c (cp_parser_template_parameter): Call grokdeclarator with TPARM as third argument. testsuite/ 2009-11-16 Paolo Carlini <paolo.carlini@oracle.com> PR c++/32056 * testsuite/g++.dg/template/error44.C: New. From-SVN: r154198
Paolo Carlini committed
-
- 13 Nov, 2009 6 commits
-
-
PR c++/27425 PR c++/34274 * pt.c (expand_template_argument_pack): Handle null arg gracefully. (convert_template_argument): Use %T for type. From-SVN: r154164
Jason Merrill committed -
PR c++/29363 * decl.c (create_implicit_typedef): Set TYPE_STUB_DECL here. (cxx_init_decl_processing): Not here. * name-lookup.c (pushtag): Or here. * pt.c (lookup_template_class): Or here. From-SVN: r154163
Jason Merrill committed -
PR c++/35075 * pt.c (convert_nontype_argument): Give helpful error about reference variable argument to reference template parameter. From-SVN: r154151
Jason Merrill committed -
PR c++/21008, DR 515 * semantics.c (finish_non_static_data_member): Don't check derivation in a template. From-SVN: r154150
Jason Merrill committed -
PR c++/11987 * parser.c (cp_parser_direct_declarator): Give helpful error about trying to define member of a dependent typedef. * pt.c (resolve_typename_type): Don't resolve a typedef typename. * tree.c (typedef_variant_p): New. * cp-tree.h: Declare it. From-SVN: r154149
Jason Merrill committed -
PR c++/27078 * parser.c (cp_parser_primary_expression): Don't give a duplicate ambiguity error. From-SVN: r154139
Jason Merrill committed
-
- 12 Nov, 2009 7 commits
-
-
PR c++/39560 * decl2.c (build_anon_union_vars): Set DECL_ARTIFICIAL. From-SVN: r154133
Jason Merrill committed -
re PR c++/37037 (ICE on template class member function definition after explicit template class instantation) PR c++/37037 * decl.c (grokdeclarator): Don't generate a void PARM_DECL. From-SVN: r154131
Jason Merrill committed -
re PR c++/42013 (cv-qualification of conditional expression type depending on the value of its first expression?!?) PR c++/42013 * call.c (build_conditional_expr): Check specifically for folding to CALL_EXPR rather than TREE_SIDE_EFFECTS. From-SVN: r154129
Jason Merrill committed -
* typeck.c (cv_qualified_p): New fn. (decay_conversion): Use it. * cp-tree.h: Declare it. * tree.c (rvalue): Use it and cv_unqualified. * init.c (build_aggr_init): Likewise. From-SVN: r154125
Jason Merrill committed -
re PR c++/42013 (cv-qualification of conditional expression type depending on the value of its first expression?!?) PR c++/42013 * call.c (build_conditional_expr): Don't fold a TREE_SIDE_EFFECTS COND_EXPR in unevaluated context. From-SVN: r154124
Jason Merrill committed -
* decl2.c (constrain_visibility): Clear WEAK and COMMON flags. * ipa.c (function_and_variable_visibility): Verify that WEAK || COMMON imply PUBLIC || EXTERNAL. From-SVN: r154115
Jan Hubicka committed -
PR c++/39131 * rtti.c (emit_support_tinfos): Add DFP types. * config/abi/pre/gnu.ver: Add DFP types. * testsuite/util/testsuite_abi.cc (check_version): Add CXXABI_1.3.4. From-SVN: r154113
Jason Merrill committed
-
- 11 Nov, 2009 1 commit
-
-
call.c (build_op_delete_call): Downgrade error about placement/non-placement confusion to permerror. * call.c (build_op_delete_call): Downgrade error about placement/non-placement confusion to permerror. From-SVN: r154106
Jason Merrill committed
-
- 10 Nov, 2009 2 commits
-
-
From-SVN: r154073
Jason Merrill committed -
PR c++/34158 PR c++/36406 * call.c (non_placement_deallocation_fn_p): Split out... (build_op_delete_call): ...from here. Use instantiate_type for placement delete. Simplify logic. * pt.c (primary_template_instantiation_p): Non-static. * cp-tree.h: Declare it. From-SVN: r154072
Jason Merrill committed
-