summaryrefslogtreecommitdiff
path: root/gcc/cp/decl.c
Commit message (Collapse)AuthorAgeFilesLines
* 2011-01-15 Giovanni Funchal <gafunchal@gmail.com>redi2011-01-151-0/+6
| | | | | | | | | | | Jonathan Wakely <jwakely.gcc@gmail.com> PR c++/33558 * decl.c (grokdeclarator): Reject mutable reference members. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168843 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-12-25 Kai Tietz <kai.tietz@onevision.com>ktietz2010-12-251-1/+5
| | | | | | | | | | | | | | | | | | | PR c++/15774 * decl.c (decls_match): Check for FUNCTION_DECL also for identity of compatible attributes. ChangeLog gcc/testsuite 2010-12-25 Kai Tietz <kai.tietz@onevision.com> PR c++/15774 * g++.dg/warn/pr15774-1.C: New test. * g++.dg/warn/pr15774-2.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168241 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/froydnj2010-12-221-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * c-aux-info.c (gen_formal_list_for_type): Use prototype_p. * c-decl.c (diagnose_arglist_conflict): Likewise. (diagnose_mismatched_decls, merge_decls): Likewise. (c_builtin_function, c_builtin_function_ext_scope): Likewise. (start_decl, start_function): Likewise. * c-tree.h (C_DECL_ISNT_PROTOTYPED): Likewise. * config/ia64/ia64.h (INIT_CUMULATIVE_ARGS): Likewise. * config/mep/mep.c (mep_validate_interrupt): Likewise. * config/pa/pa.h (INIT_CUMULATIVE_ARGS): Likewise. * config/rs6000/rs6000.c (init_cumulative_args): Likewise. * config/sh/sh.c (sh_init_cumulative_args): Likewise. * config/sparc/sparc.c (init_cumulative_args): Likewise. * dwarf2out.c (add_prototyped_attribute): Likewise. (gen_subprogram_die): Likewise. * ipa-type-escape.c (check_function_parameter_and_return_types): Likewise. (check_call): Likewise. * tree-ssa.c (useless_type_conversion_p): Likewise. gcc/ada/ * gcc-interface/utils.c (handle_nonnull_attribute): Use prototype_p. (handle_sentinel_attribute): Likewise. gcc/c-family/ * c-common.c (handle_nonnull_attribute, handle_sentinel_attribute): Use prototype_p. gcc/cp/ * decl.c (decls_match, duplicate_decls): Use prototype_p. * pt.c (push_template_decl_real): Likewise. gcc/lto/ * lto-lang.c (handle_nonnull_attribute, handle_sentinel_attribute): Use prototype_p. gcc/objc/ * objc-act.c (next_sjlj_build_enter_and_setjmp): Use prototype_p. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@168181 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/46930jason2010-12-151-0/+7
| | | | | | | * decl.c (grokdeclarator): Reject uninitialized constexpr static data member. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167834 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/46001jakub2010-12-101-1/+6
| | | | | | | | | | * decl.c (record_builtin_java_type): Call build_distinct_type_copy on build_nonstandard_integer_type result for __java_* types. * g++.dg/diagnostic/bitfld1.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167698 138bc75d-0d04-0410-961f-82ee72b054a4
* * decl.c (grokmethod): Test DECL_CLASS_SCOPE_P.froydnj2010-12-101-2/+1
| | | | | | | * error.c (dump_decl): Test DECL_FILE_SCOPE_P. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167691 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/46736jason2010-12-081-1/+3
| | | | | | | | * decl.c (cp_finish_decl): Complain about an implicitly deleted method defaulted outside the class. * method.c (maybe_explain_implicit_delete): Don't check DECL_INITIAL. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167601 138bc75d-0d04-0410-961f-82ee72b054a4
* In gcc/:nicola2010-12-061-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com> * c-family/c-common.h: Removed the declarations of all the objc_ callbacks, and moved them into c-objc.h. Removed objc_ivar_visibility_kind and moved it into c-objc.h. * c-family/c-objc.h: New file. * c-family/c-common.c: Include c-objc.h. * c-family/c-format.c: Same change. * c-family/stub-objc.c: Same change. * c-decl.c: Include c-family/c-objc.h. * c-parser.c: Same change. * c-typeck.c: Same change. * c-config-lang.in (gtfiles): Added c-family/c-objc.h. * Makefile.in (c-decl.o): Depend on c-family/c-objc.h. (c-parser.o): same change. (c-typeck.o): Same change. (c-family/c-format.o): Same change. (c-family/stub-objc.o): Same change. (c-family/c-common.o): Same change. (PLUGIN_HEADERS): Added c-family/c-objc.h. In gcc/cp/: 2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com> * call.c: Include c-family/c-objc.h. * decl.c: Same change. * decl2.c: Same change. * error.c: Same change. * lex.c: Same change. * parser.c: Same change. * pt.c: Same change. * semantics.c: Same change. * typeck.c: Same change. * Make-lang.in (cp/decl.o): Depend on c-family/c-objc.h. (cp/decl2.o): Same change. (cp/call.o): Same change. (cp/error.o): Same change. (cp/lex.o): Same change. (cp/parser.o): Same change. (cp/pt.o): Same change. (cp/semantics.o): Same change. (cp/typeck.o): Same change. * config-lang.in (gtfiles): Added c-family/c-objc.h. In gcc/objc/: 2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com> * objc-act.c: Include c-family/c-objc.h. * objc-lang.c: Same change. * Make-lang.in (objc/objc-act.o): Depend on c-family/c-objc.h. (objc/objc-lang.o): Same change. * config-lang.in (gtfiles): Added c-family/c-objc.h. In gcc/objcp/: 2010-12-06 Nicola Pero <nicola.pero@meta-innovation.com> * config-lang.in (gtfiles): Added c-family/c-objc.h. * Make-lang.in (objcp/objcp-act.o): Depend on c-family/c-objc.h. (objcp/objcp-lang.o): Same change. (objcp/objcp-decl.o): Same change. * objcp-lang.c: Include c-family/c-objc.h. * objcp-decl.c: Same change. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167481 138bc75d-0d04-0410-961f-82ee72b054a4
* In gcc/c-family/:nicola2010-11-301-0/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2010-11-30 Nicola Pero <nicola.pero@meta-innovation.com> * c-common.h (objc_finish_function): New. (objc_non_volatilized_type): Removed. (objc_type_quals_match): Removed. * stub-objc.c (objc_finish_function): New. (objc_non_volatilized_type): Removed. (objc_type_quals_match): Removed. In gcc/objc/: 2010-11-30 Nicola Pero <nicola.pero@meta-innovation.com> * objc-act.c (objc_build_volatilized_type): Removed. (objc_non_volatilized_type): Removed. (objc_type_quals_match): Removed. (local_variables_to_volatilize): New. (objc_volatilize_decl): Add the decl to volatilize to local_variables_to_volatilize, but don't volatilize it yet. (objc_finish_function): New. * objc-act.h (local_variables_to_volatilize): New. In gcc/cp/: 2010-11-30 Nicola Pero <nicola.pero@meta-innovation.com> * decl.c (finish_function): Call objc_finish_function when compiling Objective-C++. * call.c (standard_conversion): Do not call objc_non_volatilized_type(). (implicit_conversion): Same change. * typeck.c (comp_ptr_ttypes_real): Same change. In gcc/: 2010-11-30 Nicola Pero <nicola.pero@meta-innovation.com> * c-decl.c (finish_function): Call objc_finish_function in Objective-C. * c-typeck.c (convert_for_assignment): Do not call objc_type_quals_match(). git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167318 138bc75d-0d04-0410-961f-82ee72b054a4
* In gcc/cp/:nicola2010-11-271-1/+15
| | | | | | | | | | | | | | | | | | | 2010-11-27 Nicola Pero <nicola.pero@meta-innovation.com> PR objc++/46222 * decl.c (grokdeclarator): Replaced an assert (for a case that can never happen in C++, but could happen in ObjC++ for invalid code) with a check that prints an error message and returns error_mark_node. In gcc/testsuite/: 2010-11-27 Nicola Pero <nicola.pero@meta-innovation.com> PR objc++/46222 * obj-c++.dg/property/at-property-2.mm: Uncommented testcase. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@167202 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/46538jakub2010-11-201-0/+2
| | | | | | | | | | * decl.c (cp_make_fname_decl): Return error_mark_node if current_binding_level has already sk_function_parms kind. * g++.dg/other/error34.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166974 138bc75d-0d04-0410-961f-82ee72b054a4
* DR 1004jason2010-11-171-0/+3
| | | | | | | * decl.c (make_unbound_class_template): Handle using injected-type-name as template. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166850 138bc75d-0d04-0410-961f-82ee72b054a4
* * decl.c (cp_finish_decl): Use resolve_nondeduced_context for auto.jason2010-11-141-0/+1
| | | | | | | | | | * init.c (build_new): Likewise. * pt.c (tsubst_decl): Likewise. (do_auto_deduction): Likewise. (resolve_nondeduced_context): Use build_offset_ref and cp_build_addr_expr. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166724 138bc75d-0d04-0410-961f-82ee72b054a4
* * cfgloop.c (verify_loop_structure): Use %' in diagnostics. Startjsm282010-11-101-5/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | diagnostics with lowercase letters. * cgraphunit.c (verify_cgraph_node): Start diagnostics with lowercase letters. * collect2.c (maybe_run_lto_and_relink): Remove trailing '.' from diagnostic. * config/alpha/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic. * config/arm/arm.c (arm_get_pcs_model): Start diagnostics with lowercase letters. * config/arm/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic. Remove trailing ' ' from diagnostic. * config/avr/avr.c (print_operand_address): Start diagnostic with a lowercase letter and remove trailing '.'. * config/avr/avr.opt (mpmem-wrap-around): Fix typo in help text. * config/bfin/bfin.c (bfin_option_override): Start diagnostics with lowercase letters. Use %' in diagnostics. Remove trailing '.' from diagnostics. (bfin_handle_longcall_attribute): Use %' in diagnostic. * config/cris/cris.c (cris_split_movdx, cris_expand_pic_call_address): Start diagnostics with lowercase letters. (cris_asm_output_label_ref): Use %' in diagnostic. * config/cris/cris.h (ASM_SPEC): Start diagnostic with a lowercase letter. * config/crx/crx.h (FUNCTION_PROFILER): Start diagnostic with a lowercase letter. * config/darwin-c.c (version_as_macro): Start diagnostic with a lowercase letter. * config/darwin-driver.c (darwin_default_min_version): Use %' in diagnostic. * config/host-darwin.c (darwin_gt_pch_use_address): Use %' in diagnostic. * config/i386/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic. * config/i386/host-cygwin.c (cygwin_gt_pch_get_address): Use %' in diagnostics. * config/i386/i386.c (ix86_option_override_internal): Write diagnostic as a single sentence without trailing '.'. Use %' in diagnostics. (ix86_function_sseregparm, classify_argument): Start diagnostics with lowercase letters. (ix86_expand_prologue): Use %' in diagnostic. * config/i386/i386.h (CC1_CPU_SPEC_1): Remove trailing '.' from diagnostic. * config/i386/nwld.h (LINK_SPEC): Start diagnostic with a lowercase letter. * config/i386/winnt.c (i386_pe_determine_dllimport_p): Use %' in diagnostic. * config/ia64/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic. * config/ia64/ia64.opt (msched-max-memory-insns-hard-limit): Avoid '`' in help text. * config/lm32/lm32.c (lm32_print_operand): Start diagnostic with a lowercase letter. * config/mep/mep.c (mep_validate_vliw): Start diagnostics with lowercase letters. * config/microblaze/microblaze.c (microblaze_handle_option): Remove trailing '.' from diagnostic. (print_operand): Start diagnostic with a lowercase letter. * config/pa/pa-hpux10.h (LINK_SPEC): Start diagnostics with lowercase letters. Avoid '`' in diagnostics. * config/pa/pa-hpux11.h (LINK_SPEC): Start diagnostics with lowercase letters. Avoid '`' in diagnostics. * config/pa/pa64-hpux.h (LINK_SPEC): Start diagnostics with lowercase letters. Avoid '`' in diagnostics. * config/picochip/picochip.c (picochip_option_override, picochip_emit_save_register, picochip_function_arg, picochip_output_label, picochip_output_internal_label, picochip_asm_output_opcode, picochip_output_cbranch, picochip_output_compare, picochip_output_branch, picochip_get_vliw_alu_id): Remove trailing '.' and '\n' from diagnostics. Start diagnostics with lowercase letters. Use %' in diagnostics. * config/rs6000/rs6000.c (rs6000_option_override_internal): Use "SPE" capitalization. Start diagnostic with a lowercase letter. (rs6000_handle_option): Start diagnostics with lowercase letters. (def_builtin): Remove trailing '.' from diagnostic. (rs6000_savres_routine_name): Start diagnostic with a lowercase letter. * config/rs6000/sysv4.h (LINK_OS_FREEBSD_SPEC): Avoid '`' in diagnostic. * config/rx/rx.c (rx_handle_option): Start diagnostic with a lowercase letter. * config/s390/s390.c (s390_option_override) Start diagnostics with lowercase letters. Use %' in diagnostic. * config/sh/sh.c (sh_output_mi_thunk): Start diagnostics with lowercase letters. * config/sh/symbian-base.c (sh_symbian_mark_dllimport): Use %' in diagnostic. * config/sh/symbian-c.c (sh_symbian_is_dllimported): Use %' in diagnostic. * config/sh/symbian-cxx.c (sh_symbian_is_dllimported): Use %' in diagnostic. * config/sparc/freebsd.h (LINK_SPEC): Avoid '`' in diagnostic. * config/spu/spu.c (spu_option_override): Start diagnostics with lowercase letters. Use %qs for quoting in diagnostics. (spu_check_builtin_parm): Remove trailing '.' from diagnostics. Use %wd instead of HOST_WIDE_INT_PRINT_DEC in diagnostic . * config/v850/v850.c (construct_save_jarl): Remove trailing '\n' from diagnostic. * convert.c (convert_to_integer, convert_to_vector): Use %' in diagnostics. * dbgcnt.c (dbg_cnt_process_opt): Start diagnostic with lowercase letter and use "cannot" spelling. * expmed.c (extract_fixed_bit_field): Start diagnostic with lowercase letter and format as a single sentence without '.'. * ggc-common.c (write_pch_globals, gt_pch_save, gt_pch_restore): Use %' in diagnostics. * ggc-page.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read): Use %' in diagnostics. * ggc-zone.c (ggc_pch_write_object, ggc_pch_finish, ggc_pch_read): Use %' in diagnostics. * graph.c (clean_graph_dump_file): Use %' in diagnostic. * graphite-poly.c (graphite_read_scop_file): Start diagnostics with lowercase letters and remove tailing '.' and '\n'. * lto-cgraph.c (input_profile_summary): Start diagnostic with lowercase letter and remove trailing '.'. (input_cgraph): Start diagnostics with lowercase letters and remove trailing '\n'. * opts.c (finish_options, common_handle_option): Start diagnostics with lowercase letters and remove trailing '.'. Fix typo in diagnostic. * passes.c (position_pass): Start diagnostic with lowercase letter. * plugin.c (add_new_plugin, parse_plugin_arg_opt, register_callback, try_init_one_plugin): Start diagnostics with lowercase letters. * reload1.c (spill_failure): Use %' in diagnostic. (gen_reload): Start diagnostic with a lowercase letter. * stor-layout.c (place_field): Start diagnostic with a lowercase letter. * toplev.c (open_auxiliary_file): Use %' in diagnostic. * tree-cfg.c (verify_expr, verify_types_in_gimple_reference, verify_gimple_call, verify_gimple_phi, verify_eh_throw_stmt_node): Start diagnostics with lowercase letters, remove trailing '.' and use %' in diagnostics. * tree-ssa.c (verify_def): Remove trailing '.' from diagnostic. (verify_ssa): Don't split diagnostic across two error calls. Spell out "number" and use %' in diagnostic. * value-prof.c (visit_hist, check_counter): Start diagnostics with lowercase letters. c-family: * c-common.c (handle_mode_attribute): Use %' and word "signedness" in diagnostic. * c-opts.c (c_common_parse_file): Start diagnostics with lowercase letter. * c-pragma.c (handle_pragma_target, handle_pragma_optimize): Remove trailing '.' from diagnostics. * c.opt (Wwrite-strings_: Avoid '`' in help text. cp: * cvt.c (cp_convert_to_pointer): Use %' in diagnostic. * decl.c (layout_var_decl, maybe_commonize_var, grokdeclarator): Use %' in diagnostics. * decl2.c (check_classfn): Use %' in diagnostic. * init.c (build_java_class_ref): Use %' in diagnostic. (build_delete): Remove trailing '.' from diagnostic. * method.c (do_build_copy_assign, walk_field_subobs): Use %' in diagnostics. * name-lookup.c (pushdecl_maybe_friend): Use %' in diagnostic. * parser.c (cp_parser_exception_specification_opt): Remove trailing '.' from diagnostic. (cp_parser_objc_interstitial_code): Use %qs for quoting in diagnostic. * pt.c (check_valid_ptrmem_cst_expr): Use %< and %> for quoting in diagnostic. * repo.c (reopen_repo_file_for_write): Use %' in diagnostic. fortran: * trans-array.c (gfc_trans_deferred_array): Use "front-end" spelling in diagnostic. * trans.c (gfc_allocate_array_with_status): Add missing space in diagnostic. java: * expr.c (expand_java_field_op): Use %' in diagnostic. * jcf-parse.c (java_parse_file): Use %' in diagnostics. * jvspec.c (lang_specific_driver): Use %' in diagnostic. * lang.c (java_post_options): Use %' in diagnostics. lto: * lto.c (lto_resolution_read): Start diagnostics with lowercase letters and remove trailing '.'. (lto_file_finalize): Start diagnostic with a lowercase letter. objc: * objc-act.c (objc_init): Use %' in diagnostic. (objc_set_method_opt): Remove trailing '.' from diagnostic. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166570 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/cp/froydnj2010-11-101-1/+5
| | | | | | | | | | | | | PR c++/46065 * decl.c (poplevel_named_label_1): Use TREE_CHAIN if necessary. gcc/testsuite/ PR c++/46065 * g++.dg/pr46065.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166558 138bc75d-0d04-0410-961f-82ee72b054a4
* Correct conversion/overflow behavior.jason2010-11-081-1/+0
| | | | | | | | | | | | | | | | | | | | | * cvt.c (ignore_overflows): Move here from typeck.c. (ocp_convert): Use it. (cp_fold_convert): Use it. Don't call rvalue. * typeck.c (build_static_cast_1): Don't use it. Do call rvalue. * error.c (location_of): Handle expressions, too. * class.c (check_bitfield_decl): Set input_location around call to cxx_constant_value. * semantics.c (cxx_eval_outermost_constant_expr): Don't print the expression if it already had TREE_OVERFLOW set. (reduced_constant_expression_p): Check TREE_OVERFLOW_P for C++98, too. (verify_constant): Allow overflow with a permerror if we're enforcing. (cxx_eval_outermost_constant_expr): Use verify_constant. (adjust_temp_type): Use cp_fold_convert. * decl.c (build_enumerator): Don't call constant_expression_warning. * decl2.c (grokbitfield): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166453 138bc75d-0d04-0410-961f-82ee72b054a4
* * call.c (null_ptr_cst_p): Use maybe_constant_value.jason2010-11-021-82/+168
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (set_up_extended_ref_temp): Support constant initialization. (initialize_reference): Adjust. * class.c (check_bitfield_decl): Use cxx_constant_value. * cvt.c (ocp_convert): Don't use integral_constant_value when converting to class type. * decl.c (finish_case_label): Use maybe_constant_value. (build_init_list_var_init): Support constant initialization. (check_initializer): Likewise. Reorganize. (cp_finish_decl): Likewise. (expand_static_init): Likewise. (compute_array_index_type): Use maybe_constant_value. Add complain parm. (create_array_type_for_decl, grokdeclarator): Pass it. (build_enumerator): Use cxx_constant_value. * decl2.c (grokfield): Use maybe_constant_init. * except.c (check_noexcept_r): Handle constexpr. (build_noexcept_spec): Use maybe_constant_value. * init.c (expand_default_init): Support constant initialization. (build_vec_init): Likewise. (constant_value_1): Adjust. (build_new_1): Adjust. * parser.c (cp_parser_constant_expression): Allow non-integral in C++0x mode. (cp_parser_direct_declarator): Don't fold yet in C++0x mode. (cp_parser_initializer_clause): Toss folded result if non-constant. * pt.c (fold_decl_constant_value): Remove. (convert_nontype_argument): Use maybe_constant_value. Give clearer error about overflow. (tsubst): Move array bounds handling into compute_array_index_type. (value_dependent_expression_p): Handle constant CALL_EXPR. * semantics.c (finish_static_assert): Use maybe_constant_value. (ensure_literal_type_for_constexpr_object): Make sure type is complete. (potential_constant_expression): Use maybe_constant_value. * tree.c (cast_valid_in_integral_constant_expression_p): Any cast is potentially valid in C++0x. * typeck2.c (store_init_value): Handle constant init. (check_narrowing): Use maybe_constant_value. (build_functional_cast): Set TREE_CONSTANT on literal T(). * cp-tree.h (DECL_INTEGRAL_CONSTANT_VAR_P): Remove. (LOOKUP_ALREADY_DIGESTED): New. (compute_array_index_type): Adjust prototype. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166167 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (register_constexpr_fundef): Declare.jason2010-11-021-0/+17
| | | | | | | | | | | | | | | | | | | | | | * decl.c (maybe_save_function_definition): New. (finish_function): Use it. * semantics.c (constexpr_fundef): New datatype. (constexpr_fundef_table): New global table. (constexpr_fundef_equal): New. (constexpr_fundef_hash): Likewise. (retrieve_constexpr_fundef): Likewise. (validate_constexpr_fundecl): Store in the table. (build_data_member_initialization): New fn. (build_constexpr_constructor_member_initializers): New. (register_constexpr_fundef): Define. (is_this_parameter): New. (get_function_named_in_call): Likewise. (get_nth_callarg): Likewise. (check_automatic_or_tls): New. (morally_constexpr_builtin_function_p): New. (potential_constant_expression): New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166165 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree.h (EXPR_LOC_OR_HERE): New macro.jason2010-11-011-4/+1
| | | | | | | | | | | | | | | | * builtins.c (c_strlen): Use it. * c-decl.c (build_enumerator): Likewise. * gimplify.c (internal_get_tmp_var): Likewise. (shortcut_cond_expr): Likewise. (gimplify_one_sizepos): Likewise. c-family/ * c-common.c (conversion_warning, warn_for_collisions_1): Use EXPR_LOC_OR_HERE. cp/ * decl.c (pop_switch): Use EXPR_LOC_OR_HERE. * typeck.c (convert_for_assignment): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166123 138bc75d-0d04-0410-961f-82ee72b054a4
* * decl.c (grokdeclarator): Don't ICE on constexpr non-static datajason2010-11-011-2/+5
| | | | | | | | | member. * parser.c (cp_parser_diagnose_invalid_type_name): Give helpful message about constexpr without -std=c++0x. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166122 138bc75d-0d04-0410-961f-82ee72b054a4
* c-family/jason2010-10-271-0/+5
| | | | | | | | * c-common.c (check_case_value): Remove special C++ code. cp/ * decl.c (finish_case_label): Use decl_constant_value. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166019 138bc75d-0d04-0410-961f-82ee72b054a4
* * parser.c (cp_parser_ctor_initializer_opt_and_function_body):jason2010-10-271-106/+120
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Make sure a constexpr ctor has an empty body. * class.c (type_has_constexpr_default_constructor): New. * cp-tree.h: Declare it. * init.c (perform_member_init): Complain about uninitialized member in constexpr ctor. (emit_mem_initializers): And uninitialized base. * decl.c (check_tag_decl): Fix typo. * semantics.c (valid_type_in_constexpr_fundecl_p): New fn. (is_valid_constexpr_fn): New fn. (validate_constexpr_fundecl): Use it. * decl.c (validate_constexpr_redeclaration): New. (duplicate_decls): Use it. (cp_finish_decl): Call validate_constexpr_fundecl and ensure_literal_type_for_constexpr_object here. (start_decl): Not here. Don't ICE on constexpr reference. (check_for_uninitialized_const_var): Don't handle constexpr specially. (grokfndecl): Set DECL_DECLARED_CONSTEXPR_P. (check_static_variable_definition): Give friendly message about missing constexpr. (grokdeclarator): Complain about typedef and volatile with constexpr. Reorganize. Give sorry about non-static data members in C++0x mode. (start_preparsed_function): Check validate_constexpr_fundecl here. (check_function_type): Not here. * decl2.c (finish_static_data_member_decl): Don't complain about in-class init. * parser.c (CP_PARSER_FLAGS_ONLY_TYPE_OR_CONSTEXPR): New. (cp_parser_condition): Pass it to cp_parser_decl_specifier_seq. (cp_parser_decl_specifier_seq): Handle it. (cp_parser_explicit_instantiation): Diagnose inline and constexpr. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166013 138bc75d-0d04-0410-961f-82ee72b054a4
* * class.c (check_bases): Propagate non-literality.jason2010-10-271-0/+4
| | | | | | | | | | | | | (check_field_decls): Likewise. (finalize_literal_type_property): New. (check_bases_and_members): Call it. * cp-tree.h (TYPE_HAS_CONSTEXPR_CTOR): New. (lang_type_class): Add has_constexpr_ctor field. (DECL_DECLARED_CONSTEXPR_P): Strip template. * decl.c (grok_special_member_properties): Set TYPE_HAS_CONSTEXPR_CTOR. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@166012 138bc75d-0d04-0410-961f-82ee72b054a4
* * decl.c (finish_function): Don't look at function_depth.jason2010-10-261-7/+1
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165967 138bc75d-0d04-0410-961f-82ee72b054a4
* Implement opaque-enum-specifiers for C++0x.jason2010-10-261-102/+160
| | | | | | | | | | | | | | | | | | | | | | | | | | | | gcc/ * tree.h (ENUM_IS_OPAQUE): New. * dwarf2out.c (gen_enumeration_type_die): Use ENUM_IS_OPAQUE. gcc/cp/ * cp-tree.h (SET_OPAQUE_ENUM_P): New. (OPAQUE_ENUM_P): New. (ENUM_FIXED_UNDERLYING_TYPE_P): New. (start_enum): Update prototype. (finish_enum_value_list): New prototype. * parser.c (cp_parser_elaborated_type_specifier): Issue a pedwarn if "enum class" is used in an elaborated-type-specifier. (cp_parser_enum_specifier): Rewrite to parse opaque-enum-specifiers. * decl.c (copy_type_enum): New. (finish_enum_value_list): New, with code from finish_enum. (finish_enum): A lot of code removed. Added a gcc_assert. (start_enum): Add parameters enumtype and is_new. Rewrite to work with opaque-enum-specifiers. * pt.c (maybe_process_partial_specialization): Allow for template specialization of enumerations, with a pedwarn. (lookup_template_class): Update call to start_enum. Call to SET_OPAQUE_ENUM_P. (tsubst_enum): Call to begin_scope, finish_scope and finish_enum_value_list. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165935 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-10-14 Richard Guenther <rguenther@suse.de>rguenth2010-10-141-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | PR lto/44561 * tree.def (NULLPTR_TYPE): New tree code. * dbxout.c (dbxout_type): Handle NULLPTR_TYPE. * dwarf2out.c (is_base_type): Likewise. (gen_type_die_with_usage): Likewise. * sdbout.c (plain_type_1): Likewise. * tree.c (build_int_cst_wide): Likewise. * gimple.c (gimple_types_compatible_p_1): NULLPTR_TYPE types are equal. cp/ * cp-tree.h (NULLPTR_TYPE_P): Adjust. * decl.c (cxx_init_decl_processing): Build a NULLPTR_TYPE node, use build_int_cst. * error.c (dump_type): Handle NULLPTR_TYPE. (dump_type_prefix): Likewise. (dump_type_suffix): Likewise. * mangle.c (write_type): Likewise. * name-lookup.c (arg_assoc_type): Likewise. * rtti.c (typeinfo_in_lib_p): Likewise. * pt.c (tsubst): Likewise. * g++.dg/lto/20101010-3_0.C: New testcase. * g++.dg/lto/20101010-4_0.C: Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@165462 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-29 Richard Guenther <rguenther@suse.de>rguenth2010-09-291-15/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree.h (SCOPE_FILE_SCOPE_P): New macro. (DECL_FILE_SCOPE_P): Use it. (TYPE_FILE_SCOPE_P): New macro. cp/ * cp-tree.h (CP_DECL_CONTEXT): Check DECL_FILE_SCOPE_P. (CP_TYPE_CONTEXT): Similar. (FROB_CONTEXT): Frob global_namespace to the global TRANSLATION_UNIT_DECL. * decl.c (cxx_init_decl_processing): Build a TRANSLATION_UNIT_DECL, set DECL_CONTEXT of global_namespace to it. (start_decl): Use CP_DECL_CONTEXT and test TYPE_P instead of zeroing context. (cp_finish_decl): Use DECL_FILE_SCOPE_P. (grokfndecl): Likewise. (start_preparsed_function): Likewise. * name-lookup.c (maybe_push_decl): Use DECL_NAMESPACE_SCOPE_P. (namespace_binding): Use SCOPE_FILE_SCOPE_P. * pt.c (template_class_depth): Use CP_TYPE_CONTEXT. (is_specialization_of_friend): Use CP_DECL_CONTEXT. (push_template_decl_real): Likewise. (tsubst_friend_class): Likewise. Adjust context comparisons. (instantiate_class_template): Use CP_TYPE_CONTEXT. (tsubst): Do not substitute into TRANSLATION_UNIT_DECL. * cxx-pretty-print.c (pp_cxx_nested_name_specifier): Use SCOPE_FILE_SCOPE_P. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164719 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-29 Yao Qi <yao@codesourcery.com>qiyao2010-09-291-2/+2
| | | | | | | * decl.c (get_atexit_node): Fix typo. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164718 138bc75d-0d04-0410-961f-82ee72b054a4
* Require lvalues as specified by the standard.jason2010-09-271-2/+2
| | | | | | | | | | | | | | | | | | | | | | | * typeck.c (lvalue_or_else): Use real_lvalue_p. (cp_build_addr_expr_1): Split out of cp_build_unary_op. (cp_build_addr_expr, cp_build_addr_expr_strict): Interfaces. (decay_conversion, get_member_function_from_ptrfunc): Adjust. (build_x_unary_op, build_reinterpret_cast_1): Adjust. (build_const_cast_1): Adjust. * cp-tree.h: Declare new fns. * call.c (build_this, convert_like_real, build_over_call): Adjust. (initialize_reference): Adjust. * class.c (build_base_path, convert_to_base_statically): Adjust. (build_vfn_ref, resolve_address_of_overloaded_function): Adjust. * cvt.c (build_up_reference, convert_to_reference): Adjust. * decl.c (register_dtor_fn): Adjust. * decl2.c (build_offset_ref_call_from_tree): Adjust. * except.c (initialize_handler_parm): Adjust. * init.c (build_offset_ref, build_delete, build_vec_delete): Adjust. * rtti.c (build_dynamic_cast_1, tinfo_base_init): Adjust. * tree.c (stabilize_expr): Adjust. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164666 138bc75d-0d04-0410-961f-82ee72b054a4
* * lto-symtab.c (lto_symtab_entry_def): Add guessed field.hubicka2010-09-241-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | (lto_symtab_resolve_symbols): Set it. (lto_symtab_merge_decls_1): Do not compute used_from_object_file; store resolution field in cgraph/varpool. * cgraph.c (cgraph_same_body_alias, cgraph_add_thunk): Return node. (cgraph_get_node_or_alias, cgraph_get_node_or_alias): Constify. (cgraph_dump_node): Drop used_from_object_file. (cgraph_clone_node, cgraph_create_virtual_clone): Likewise. (cgraph_function_body_availability): Use decl_replaceable_p. (cgraph_make_node_local): Set resolution to LDPR_PREVAILING_DEF_IRONLY. (cgraph_can_remove_if_no_direct_calls_and_refs): Use cgraph_used_from_object_file_p. (cgraph_will_be_removed_from_program_if_no_direct_calls): Use cgraph_used_from_object_file_p. (resolution_used_from_other_file_p): New functoin. (cgraph_used_from_object_file_p): New predicate. * cgraph.h: Include plugin-api.h (struct cgraph_local_info): Remove used_from_object_file. (struct cgraph_node): Add resolution field. (struct varpool_node): Likewise; remove used_from_object_file; reove const_value_known. (cgraph_get_node, cgraph_get_node_or_alias, cgraph_node, cgraph_same_body_alias, cgraph_add_thunk): Update prototypes. (resolution_used_from_other_file_p, cgraph_used_from_object_file_p, varpool_used_from_object_file_p): Declare. (varpool_get_node, varpool_extra_name_alias): Update prototype. * tree.h (DECL_REPLACEABLE_P): Remove. (decl_replaceable_p, decl_binds_to_current_def_p): Declare. * final.c (rest_of_clean_state): Use decl_binds_to_current_def_p. * lto-cgraph.c (lto_output_node, lto_output_varpool_node, input_overwrite_node, input_node, input_varpool_node): Stream resolution. * expr.c (expand_expr_real_1): Use const_value_known_p * ipa.c (ipa_discover_readonly_nonaddressable_var): Do not set const_value_known. (cgraph_externally_visible_p): Use cgraph_used_from_object_file_p. (function_and_variable_visibility): Set resolution for local vars and functions. use varpool_used_from_object_file_p. * varasm.c (resolution_to_local_definition_p, resolution_local_p): New static functions. (default_binds_local_p_1): Use resolutoin info. (decl_binds_to_current_def_p, decl_replaceable_p): New functions. * varpool.c (varpool_get_node): Constify. (const_value_known_p): Do not use vnode->const_value_known; use decl_replaceable_p. (varpool_finalize_decl): Do not set const_value_known. (cgraph_variable_initializer_availability): Use decl_replaceable_p (varpool_extra_name_alias): Return new node. (varpool_used_from_object_file_p): New function. * decl.c (finish_function): Use decl_replaceable_p * method.c (make_alias_for_thunk): Update call of cgraph_same_body_alias. * lto.c (lto_promote_cross_file_statics): Use const_value_known_p. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164610 138bc75d-0d04-0410-961f-82ee72b054a4
* * decl.c (compute_array_index_type): Remember type dependence ofjason2010-09-241-3/+13
| | | | | | | array bound. * pt.c (dependent_type_p_r): Don't recompute it here. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164598 138bc75d-0d04-0410-961f-82ee72b054a4
* /cppaolo2010-09-151-0/+2
| | | | | | | | | | | | | | | | | 2010-09-15 Paolo Carlini <paolo.carlini@oracle.com> PR c++/45665 * decl.c (grokdeclarator): Check build_memfn_type return value for error_mark_node. /testsuite 2010-09-15 Paolo Carlini <paolo.carlini@oracle.com> PR c++/45665 * g++.dg/template/crash103.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164299 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-09-10 Richard Guenther <rguenther@suse.de>rguenth2010-09-101-7/+3
| | | | | | | | * decl.c (reshape_init_vector): For VECTOR_TYPEs, use TYPE_VECTOR_SUBPARTS instead of TYPE_DEBUG_REPRESENTATION_TYPE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@164191 138bc75d-0d04-0410-961f-82ee72b054a4
* * cp-tree.h (build_enumerator): Add new location_t parameter.charlet2010-09-071-5/+6
| | | | | | | | | | | | (build_lang_decl_loc): New function. * decl.c (build_enumerator): New parameter loc. Use it when calling build_decl. Replace build_lang_decl with build_lang_decl_loc. * pt.c (tsubst_enum): Adjust call to build_enumerator. * parser.c (cp_parser_enumerator_definition): Ditto. * lex.c (build_lang_decl_loc): New function. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163959 138bc75d-0d04-0410-961f-82ee72b054a4
* * decl.c (cp_finish_decl): Don't change init for auto deduction.jason2010-09-061-5/+8
| | | | git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163896 138bc75d-0d04-0410-961f-82ee72b054a4
* /cppaolo2010-08-301-1/+2
| | | | | | | | | | | | | | | | 2010-08-30 Paolo Carlini <paolo.carlini@oracle.com> PR c++/45043 * decl.c (grokdeclarator): Use MAIN_NAME_P only on IDENTIFIER_NODEs. /testsuite 2010-08-30 Paolo Carlini <paolo.carlini@oracle.com> PR c++/45043 * g++.dg/template/crash102.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163655 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/froydnj2010-08-201-13/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * vec.h (FOR_EACH_VEC_ELT): Define. * c-decl.c: Use it. * cfgloop.c: Likewise. * cfgloopmanip.c: Likewise. * cgraph.c: Likewise. * cgraphunit.c: Likewise. * combine.c: Likewise. * config/bfin/bfin.c: Likewise. * config/mips/mips.c: Likewise. * config/rs6000/rs6000.c: Likewise. * dbxout.c: Likewise. * df-scan.c: Likewise. * dominance.c: Likewise. * dse.c: Likewise. * dwarf2out.c: Likewise. * except.c: Likewise. * expr.c: Likewise. * function.c: Likewise. * gcse.c: Likewise. * genattr.c: Likewise. * ggc-common.c: Likewise. * gimplify.c: Likewise. * graphite-blocking.c: Likewise. * graphite-clast-to-gimple.c: Likewise. * graphite-dependences.c: Likewise. * graphite-interchange.c: Likewise. * graphite-poly.c: Likewise. * graphite-scop-detection.c: Likewise. * graphite-sese-to-poly.c: Likewise. * graphite.c: Likewise. * haifa-sched.c: Likewise. * ifcvt.c: Likewise. * implicit-zee.c: Likewise. * ipa-prop.c: Likewise. * ipa-struct-reorg.c: Likewise. * ipa.c: Likewise. * ira-build.c: Likewise. * ira-color.c: Likewise. * ira-emit.c: Likewise. * lambda-code.c: Likewise. * loop-invariant.c: Likewise. * loop-unroll.c: Likewise. * lower-subreg.c: Likewise. * lto-cgraph.c: Likewise. * lto-opts.c: Likewise. * lto-streamer-in.c: Likewise. * lto-streamer-out.c: Likewise. * lto-streamer.c: Likewise. * lto-symtab.c: Likewise. * matrix-reorg.c: Likewise. * opts.c: Likewise. * predict.c: Likewise. * print-tree.c: Likewise. * sdbout.c: Likewise. * sel-sched-dump.c: Likewise. * sel-sched-ir.c: Likewise. * sel-sched.c: Likewise. * sese.c: Likewise. * stor-layout.c: Likewise. * tree-cfg.c: Likewise. * tree-cfgcleanup.c: Likewise. * tree-chrec.c: Likewise. * tree-data-ref.c: Likewise. * tree-emutls.c: Likewise. * tree-inline.c: Likewise. * tree-into-ssa.c: Likewise. * tree-loop-distribution.c: Likewise. * tree-loop-linear.c: Likewise. * tree-mudflap.c: Likewise. * tree-outof-ssa.c: Likewise. * tree-parloops.c: Likewise. * tree-predcom.c: Likewise. * tree-pretty-print.c: Likewise. * tree-scalar-evolution.c: Likewise. * tree-ssa-live.c: Likewise. * tree-ssa-loop-im.c: Likewise. * tree-ssa-loop-ivcanon.c: Likewise. * tree-ssa-loop-ivopts.c: Likewise. * tree-ssa-loop-manip.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-loop-prefetch.c: Likewise. * tree-ssa-phiprop.c: Likewise. * tree-ssa-pre.c: Likewise. * tree-ssa-reassoc.c: Likewise. * tree-ssa-sccvn.c: Likewise. * tree-ssa-structalias.c: Likewise. * tree-ssa.c: Likewise. * tree-vect-data-refs.c: Likewise. * tree-vect-loop-manip.c: Likewise. * tree-vect-loop.c: Likewise. * tree-vect-patterns.c: Likewise. * tree-vect-slp.c: Likewise. * tree-vect-stmts.c: Likewise. * tree-vrp.c: Likewise. * tree.c: Likewise. * value-prof.c: Likewise. * var-tracking.c: Likewise. * varasm.c: Likewise. * vmsdbgout.c: Likewise. gcc/ada/ * gcc-interface/decl.c: Use FOR_EACH_VEC_ELT. * gcc-interface/trans.c: Likewise. * gcc-interface/utils.c: Likewise. gcc/c-family/ * c-common.c: Use FOR_EACH_VEC_ELT. * c-gimplify.c: Likewise. * c-pragma.c: Likewise. gcc/cp/ * call.c: Use FOR_EACH_VEC_ELT. * class.c: Likewise. * decl.c: Likewise. * decl2.c: Likewise. * error.c: Likewise. * except.c: Likewise. * mangle.c: Likewise. * method.c: Likewise. * name-lookup.c: Likewise. * parser.c: Likewise. * pt.c: Likewise. * repo.c: Likewise. * semantics.c: Likewise. * typeck2.c: Likewise. gcc/fortran/ * trans-openmp.c: Use FOR_EACH_VEC_ELT. gcc/java/ * class.c: Use FOR_EACH_VEC_ELT. * expr.c: Likewise. * jcf-parse.c: Likewise. * resource.c: Likewise. gcc/lto/ * lto.c: Use FOR_EACH_VEC_ELT. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@163401 138bc75d-0d04-0410-961f-82ee72b054a4
* * name-lookup.h (cp_label_binding): Declare. Declare a VEC typefroydnj2010-08-081-16/+21
| | | | | | | | | | | containing it. (cp_binding_level): Convert shadowed_labels and dead_vars_from_for fields to VECs. * decl.c (poplevel): Adjust for type changes. (declare_local_label): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162991 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/uweigand2010-07-301-0/+4
| | | | | | | | | | | | PR c++/45112 * cp/decl.c (duplicate_decls): Merge DECL_USER_ALIGN and DECL_PACKED. gcc/testsuite/ PR c++/45112 * testsuite/g++.dg/pr45112.C: New test. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162716 138bc75d-0d04-0410-961f-82ee72b054a4
* /cppaolo2010-07-191-2/+4
| | | | | | | | | | | | | | | | | | | | | | | 2010-07-19 Paolo Carlini <paolo.carlini@oracle.com> PR c++/44969 * typeck.c (build_x_compound_expr_from_list): Add tsubst_flags_t parameter. * cp-tree.h: Adjust declaration. * init.c (perform_member_init): Adjust caller. * decl.c (grok_reference_init, cp_finish_decl): Likewise. * typeck2.c (store_init_value): Likewise. (build_functional_cast): Pass complain argument to build_x_compound_expr_from_list. /testsuite 2010-07-19 Paolo Carlini <paolo.carlini@oracle.com> PR c++/44969 * g++.dg/template/sfinae23.C: New. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162303 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/44909jason2010-07-151-2/+0
| | | | | | | | | | | | | | | | | | * call.c (add_function_candidate): If we're working on an implicit declaration, don't consider candidates that won't match. * typeck.c (same_type_ignoring_top_level_qualifiers_p): Now a fn. * cp-tree.h (same_type_ignoring_top_level_qualifiers_p): Adjust. Revert: * cp-tree.h (struct lang_type_class): Add has_user_opeq. (TYPE_HAS_USER_OPEQ): New. * decl.c (grok_special_member_properties): Set it. * class.c (add_implicitly_declared_members): Don't lazily declare constructors/operator= if a base or member has a user-declared one. (check_bases_and_members, check_bases): Adjust. (check_field_decls, check_field_decl): Adjust. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162233 138bc75d-0d04-0410-961f-82ee72b054a4
* * tree.h (enum tree_index): Add TI_INTEGER_THREE.aesok2010-07-151-3/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | | (integer_three_node): Add. * tree.c (build_common_tree_nodes_2): Use integer_type_node insead of NULL_TREE in build_int_cst calls. Initialize the integer_three_node. * builtins.c (expand_builtin_prefetch): Use common tree nodes instead of call build_int_cst. * tree-ssa-sccvn.c (copy_reference_ops_from_ref): Ditto. * tree-ssa-loop-ivopts.c (idx_find_step): Ditto. (find_interesting_uses_address): Ditto. * tree-ssa-alias.c (ao_ref_init_from_ptr_and_size): Ditto. * tree-eh.c (lower_eh_constructs_2): Ditto. * tree-vect-loop.c (get_initial_def_for_induction): Ditto. * c-typeck.c (really_start_incremental_init, push_init_level): Ditto. * expmed.c (expand_divmod): Ditto. * tree-mudflap.c (mx_register_decls): Ditto. * varasm.c (array_size_for_constructor): Ditto. * tree-ssa-loop-prefetch.c (issue_prefetch_ref): Ditto. * c-parser.c (c_parser_postfix_expression): Ditto. /cp * decl.c (integer_three_node): Remove. (cxx_init_decl_processing): Do not initialize the integer_three_node. * cp-tree.h (integer_three_node): Remove. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162230 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/froydnj2010-07-151-24/+24
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * tree.h (DECL_CHAIN): Define. * alias.c: Carefully replace TREE_CHAIN with DECL_CHAIN. * c-decl.c: Likewise. * c-parser.c: Likewise. * c-typeck.c: Likewise. * cfgexpand.c: Likewise. * cgraph.c: Likewise. * cgraphunit.c: Likewise. * combine.c: Likewise. * config/alpha/alpha.c: Likewise. * config/arm/arm.c: Likewise. * config/frv/frv.c: Likewise. * config/i386/i386.c: Likewise. * config/i386/winnt-cxx.c: Likewise. * config/ia64/ia64.c: Likewise. * config/iq2000/iq2000.c: Likewise. * config/mep/mep.c: Likewise. * config/mips/mips.c: Likewise. * config/pa/som.h: Likewise. * config/rs6000/rs6000.c: Likewise. * config/s390/s390.c: Likewise. * config/sh/sh.c: Likewise. * config/sh/symbian-cxx.c: Likewise. * config/sparc/sparc.c: Likewise. * config/spu/spu.c: Likewise. * config/stormy16/stormy16.c: Likewise. * config/vxworks.c: Likewise. * config/xtensa/xtensa.c: Likewise. * coverage.c: Likewise. * dbxout.c: Likewise. * dwarf2out.c: Likewise. * emit-rtl.c: Likewise. * expr.c: Likewise. * function.c: Likewise. * gimple-low.c: Likewise. * gimple-pretty-print.c: Likewise. * gimplify.c: Likewise. * integrate.c: Likewise. * ipa-inline.c: Likewise. * ipa-prop.c: Likewise. * ipa-split.c: Likewise. * ipa-struct-reorg.c: Likewise. * ipa-type-escape.c: Likewise. * langhooks.c: Likewise. * lto-cgraph.c: Likewise. * omp-low.c: Likewise. * stor-layout.c: Likewise. * tree-cfg.c: Likewise. * tree-complex.c: Likewise. * tree-dfa.c: Likewise. * tree-dump.c: Likewise. * tree-inline.c: Likewise. * tree-mudflap.c: Likewise. * tree-nested.c: Likewise. * tree-object-size.c: Likewise. * tree-pretty-print.c: Likewise. * tree-sra.c: Likewise. * tree-ssa-live.c: Likewise. * tree-ssa-loop-niter.c: Likewise. * tree-ssa-math-opts.c: Likewise. * tree-ssa-reassoc.c: Likewise. * tree-ssa-sccvn.c: Likewise. * tree-ssa-structalias.c: Likewise. * tree-tailcall.c: Likewise. * tree-vrp.c: Likewise. * tree.c: Likewise. * var-tracking.c: Likewise. * varasm.c: Likewise. gcc/ada/ * gcc-interface/decl.c: Carefully replace TREE_CHAIN with DECL_CHAIN. * gcc-interface/trans.c: Likewise. * gcc-interface/utils.c: Likewise. * gcc-interface/utils2.c: Likewise. gcc/c-family/ * c-common.c: Carefully replace TREE_CHAIN with DECL_CHAIN. * c-format.c: Likewise. gcc/cp/ * cp-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN. * call.c: Likewise. * class.c: Likewise. * cp-gimplify.c: Likewise. * decl.c: Likewise. * decl2.c: Likewise. * init.c: Likewise. * mangle.c: Likewise. * name-lookup.c: Likewise. * optimize.c: Likewise. * parser.c: Likewise. * pt.c: Likewise. * rtti.c: Likewise. * search.c: Likewise. * semantics.c: Likewise. * typeck.c: Likewise. * typeck2.c: Likewise. gcc/fortran/ * f95-lang.c: Carefully replace TREE_CHAIN with DECL_CHAIN. * trans-common.c: Likewise. * trans-decl.c: Likewise. * trans-types.c: Likewise. * trans.c: Likewise. gcc/java/ * java-tree.h: Carefully replace TREE_CHAIN with DECL_CHAIN. * boehm.c: Likewise. * class.c: Likewise. * decl.c: Likewise. * expr.c: Likewise. * jcf-parse.c: Likewise. * typeck.c: Likewise. * verify-glue.c: Likewise. gcc/objc/ * objc-act.c: Carefully replace TREE_CHAIN with DECL_CHAIN. gcc/testsuite/ * g++.dg/plugin/attribute_plugin.c: Carefully replace TREE_CHAIN with DECL_CHAIN. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162223 138bc75d-0d04-0410-961f-82ee72b054a4
* PR c++/44909jason2010-07-131-0/+2
| | | | | | | | | | | | | * cp-tree.h (struct lang_type_class): Add has_user_opeq. (TYPE_HAS_USER_OPEQ): New. * decl.c (grok_special_member_properties): Set it. * class.c (add_implicitly_declared_members): Don't lazily declare constructors/operator= if a base or member has a user-declared one. (check_bases_and_members, check_bases): Adjust. (check_field_decls, check_field_decl): Adjust. * method.c (synthesized_method_walk): Initialize check_vdtor. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@162159 138bc75d-0d04-0410-961f-82ee72b054a4
* gcc/froydnj2010-07-061-2/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * vec.h (FOR_EACH_VEC_ELT_REVERSE): New macro. * function.h (struct_function): Change type of local_decls field to a VEC. (add_local_decl): New function. (FOR_EACH_LOCAL_DECL): New macro. * cfgexpand.c (init_vars_expansion): Adjust for new type of cfun->local_decls. (estimated_stack_frame_size): Likewise. (expand_used_vars): Likewise. * cgraphbuild.c (build_cgraph_edges): Likewise. * function.c (instantiate_decls_1): Likewise. * ipa-struct-reorg.c (build_data_structure): Likewise. * ipa-type-escape.c (analyze_function): Likewise. * lto-streamer-in.c (input_function): Likewise. * lto-streamer-out.c (output_function): Likewise. * tree-ssa-live.c (remove_unused_locals): Likewise. * tree.c (free_lang_data_in_decl): Likewise. (find_decls_types_in_node): Likewise. * omp-low.c (remove_exit_barrier): Likewise. (expand_omp_taskreg): Likewise. (list2chain): Rename to... (vec2chain): ...this. Adjust. * cgraphunit.c (assemble_thunk): Call add_local_decl. * tree-cfg.c (replace_by_duplicate_decl): Likewise. * gimple-low.c (record_vars_into): Likewise. * tree-inline.c (remap_decls): Likewise. (declare_return_variable): Likewise. (declare_inline_vars): Likewise. (copy_forbidden): Adjust for new type of cfun->local_decls. (add_local_variables): New function. (expand_call_inline): Call it. (tree_function_versioning): Likewise. gcc/cp/ * decl.c (cp_finish_decl): Call add_local_decl. * optimize.c (clone_body): Adjust for new type of cfun->local_decls. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161862 138bc75d-0d04-0410-961f-82ee72b054a4
* 2010-06-30 Manuel López-Ibáñez <manu@gcc.gnu.org>manu2010-06-301-1/+0
| | | | | | | | | | | | | | | | | | | | * tree.h (block_may_fallthru): Declare here. * tree-flow.h (block_may_fallthru): Do not declare here. * c-typeck.c: Do not include tree-flow.h. Include gimple.h and bitmap.h * Makefile.in (c-typeck.o): Update dependencies. c-family/ * c-gimplify.c: Do not include tree-flow.h cp/ * tree.c: Include gimple.h. Do not include tree-flow.h * decl.c: Do not include tree-flow.h * Make-lang.in: Adjust dependencies. ada/ * gcc-interface/trans.c: Do not include tree-flow.h. * gcc-interface/Make-lang.in: Adjust dependencies. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161591 138bc75d-0d04-0410-961f-82ee72b054a4
* * decl.c (incomplete_var): Declare. Declare VECs containing them.froydnj2010-06-301-12/+24
| | | | | | | | | (incomplete_vars): Adjust comment. Change type to a VEC. (maybe_register_incomplete_var): Adjust for new type. (complete_vars): Adjust iteration over incomplete_vars. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161584 138bc75d-0d04-0410-961f-82ee72b054a4
* * decl.c (struct named_label_entry): Change type of bad_decls fieldfroydnj2010-06-301-11/+11
| | | | | | | | | to a VEC. (poplevel_named_label_1): Adjust for new type of bad_decls. (check_goto): Likewise. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161583 138bc75d-0d04-0410-961f-82ee72b054a4
* Machinery to support implicit delete/move.jason2010-06-301-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * cp-tree.h: (struct lang_type_class): Add lazy_move_assign, has_complex_move_ctor, has_complex_move_assign bitfields. (CLASSTYPE_LAZY_MOVE_ASSIGN): New. (TYPE_HAS_COMPLEX_MOVE_ASSIGN): New. (TYPE_HAS_COMPLEX_MOVE_CTOR): New. (enum special_function_kind): Add sfk_move_assignment. (LOOKUP_SPECULATIVE): New. * call.c (build_over_call): Return early if it's set. (build_over_call): Use trivial_fn_p. * class.c (check_bases): If the base has no default constructor, the derived one is non-trivial. Handle move ctor/op=. (check_field_decl): Likewise. (check_bases_and_members): Handle move ctor/op=. (add_implicitly_declared_members): Handle CLASSTYPE_LAZY_MOVE_ASSIGN. (type_has_move_constructor, type_has_move_assign): New. * decl.c (grok_special_member_properties): Handle move ctor/op=. * method.c (type_has_trivial_fn, type_set_nontrivial_flag): New. (trivial_fn_p): New. (do_build_copy_constructor): Use it. (do_build_assign_ref): Likewise. Handle move assignment. (build_stub_type, build_stub_object, locate_fn_flags): New. (locate_ctor): Use locate_fn_flags. (locate_copy, locate_dtor): Remove. (get_dtor, get_default_ctor, get_copy_ctor, get_copy_assign): New. (process_subob_fn, synthesized_method_walk): New. (maybe_explain_implicit_delete): New. (implicitly_declare_fn): Use synthesized_method_walk, type_has_trivial_fn, and type_set_nontrivial_flag. (defaulted_late_check): Set DECL_DELETED_FN. (defaultable_fn_check): Handle sfk_move_assignment. (lazily_declare_fn): Clear CLASSTYPE_LAZY_* early. Don't declare implicitly deleted move ctor/op=. * search.c (lookup_fnfields_1): Handle sfk_move_assignment. (lookup_fnfields_slot): New. * semantics.c (omp_clause_info_fndecl): Remove. (cxx_omp_create_clause_info): Use get_default_ctor, get_copy_ctor, get_copy_assign, trivial_fn_p. (trait_expr_value): Adjust call to locate_ctor. * tree.c (special_function_p): Handle sfk_move_assignment. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161579 138bc75d-0d04-0410-961f-82ee72b054a4
* * class.c (type_has_virtual_destructor): New.jason2010-06-301-0/+1
| | | | | | | | | | | * cp-tree.h: Declare it. * semantics.c (trait_expr_value): Use it. * call.c (build_over_call): Only give warnings with tf_warning. * name-lookup.c (pop_scope): Handle NULL_TREE. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@161578 138bc75d-0d04-0410-961f-82ee72b054a4