aboutsummaryrefslogtreecommitdiff
path: root/gcc
AgeCommit message (Collapse)AuthorFilesLines
2013-08-12[AArch64] Fix name of macros called in the vdup_lane Neon intrinsicsJames Greenhalgh2-8/+13
gcc/ * config/aarch64/arm_none.h (vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call. From-SVN: r201666
2013-08-12* config.gcc (m32r-linux): Allow for tmake_file not being empty.Nick Clifton2-4/+6
From-SVN: r201664
2013-08-12i386.md (floatunssi<mode>2 expand): Add new expand for QI/HImode operand to ↵Yuri Rumyantsev2-0/+18
produce more effictive code for... * config/i386/i386.md (floatunssi<mode>2 expand): Add new expand for QI/HImode operand to produce more effictive code for unsigned char(short) --> float(double) conversion. From-SVN: r201663
2013-08-12* doc/invoke.texi: Mention that -ftls-model does not force the final model.Alexander Monakov2-0/+8
From-SVN: r201661
2013-08-12re PR tree-optimization/57980 (gcc 4.8.1 -foptimize-sibling-calls -O1 ICE in ↵Marek Polacek4-10/+33
build_int_cst_wide, at tree.c:1210) PR tree-optimization/57980 Co-Authored-By: Marc Glisse <marc.glisse@inria.fr> From-SVN: r201660
2013-08-12Fix typo.Jan Hubicka1-1/+1
From-SVN: r201659
2013-08-12re PR fortran/56666 (Suppression flag for " DO loop at (1) will be executed ↵Thomas Koenig15-5/+59
zero times") 2013-08-12 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/56666 * gfortran.h (gfc_option_t): Add warn_zerotrip. * invoke.texi (-Wzerotrip): Document option. * lang.opt (Wzerotrip): Add. * options.c (gfc_init_options): Initialize warn_zerotrip. (set_Wall): Add handling of warn_zerotrip. (gfc_handle_option): Handle OPT_Wzerotrip. * resolve.c (gfc_resolve_iterator): Honor gfc_option.warn_zerotrip; update error message to show how to suppress the warning. 2013-08-12 Thomas Koenig <tkoenig@gcc.gnu.org> PR fortran/56666 * gfortran.dg/do_check_10.f90: New test. * gfortran.dg/array_constructor_11.f90: Add -Wzerotrip to dg-options. * gfortran.dg/array_constructor_18.f90: Likewise. * gfortran.dg/array_constructor_22.f90: Likewise. * gfortran.dg/coarray_15.f90: Likewise. * gfortran.dg/do_1.f90: Add -Wall to dg-options. * gfortran.dg/do_3.F90: Add -Wzerotrip to dg-options. * gfortran.dg/do_check_5.f90: Add -Wall to gd-options. From-SVN: r201658
2013-08-12Daily bump.GCC Administrator1-1/+1
From-SVN: r201657
2013-08-11re PR c++/53349 (Internal compiler error with constexpr and recursive data type)Paolo Carlini2-0/+22
2013-08-11 Paolo Carlini <paolo.carlini@oracle.com> PR c++/53349 * g++.dg/cpp0x/constexpr-ice8.C: New. From-SVN: r201654
2013-08-11Daily bump.GCC Administrator1-1/+1
From-SVN: r201651
2013-08-10Workaround binutils PR14342Jan Hubicka2-23/+93
Workaround binutils PR14342 * tree-profile.c (init_ic_make_global_vars): Add LTO path. (gimple_init_edge_profiler): Likewise. (gimple_gen_ic_func_profiler): Likewise. * Makefile.in: Add _gcov_indirect_call_profiler_v2 symbol. * libgcov.c (L_gcov_indirect_call_profiler): Restore original API. (L_gcov_indirect_call_profiler_v2): New. From-SVN: r201648
2013-08-10* cgraph.c (cgraph_create_edge_1): Clear speculative flag.Jan Hubicka2-0/+5
From-SVN: r201646
2013-08-10Implement -mmemcpy-strategy= and -mmemset-strategy= optionsXinliang David Li13-180/+603
From-SVN: r201645
2013-08-10Daily bump.GCC Administrator1-1/+1
From-SVN: r201643
2013-08-09* ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.Jan Hubicka2-1/+8
From-SVN: r201640
2013-08-09cgraph.c (cgraph_resolve_speculation): Cut frequency to CGRAPH_FREQ_MAX.Jan Hubicka9-6/+189
* cgraph.c (cgraph_resolve_speculation): Cut frequency to CGRAPH_FREQ_MAX. (dump_cgraph_node): Dump profile-id. * cgraph.h (cgraph_indirect_call_info): Add common_target_id and common_target_probability. * lto-cgraph.c (lto_output_edge): Stream common targets. (lto_output_node): Stream profile ids. (input_node): Stream profile ids. (input_edge): Stream common targets. * lto-streamer-in.c (fixup_call_stmt_edges_1): Fix formatting. * ipa.c: Include value-prof.h (ipa_profile_generate_summary): Turn indirect call statement histograms into common targets. (ipa_profile): Turn common targets into speculative edges. * gcc.dg/tree-prof/crossmodule-indircall-1.c: New testcase. * gcc.dg/tree-prof/crossmodule-indircall-1a.c: New testcase. From-SVN: r201639
2013-08-09lower-subreg-1.c: Skip aarch64*-*-*.Yufeng Zhang2-1/+5
gcc/testsuite/ * gcc.dg/lower-subreg-1.c: Skip aarch64*-*-*. From-SVN: r201636
2013-08-09gfortran.h (gfc_get_code): Modified prototype.Janus Weil10-208/+118
2013-08-09 Janus Weil <janus@gcc.gnu.org> * gfortran.h (gfc_get_code): Modified prototype. * class.c (finalize_component, finalization_scalarizer, finalization_get_offset, finalizer_insert_packed_call, generate_finalization_wrapper, gfc_find_derived_vtab, gfc_find_intrinsic_vtab): Use 'gfc_get_code'. * io.c (match_io_iterator, match_io_element, terminate_io, get_io_list, gfc_match_inquire): Call 'gfc_get_code' with argument. * match.c (match_simple_forall, gfc_match_forall, gfc_match_goto, gfc_match_nullify, gfc_match_call, match_simple_where, gfc_match_where): Ditto. * parse.c (new_level): Ditto. (add_statement): Use XCNEW. * resolve.c (resolve_entries, resolve_allocate_expr, resolve_select_type, build_assignment, build_init_assign): Call 'gfc_get_code' with argument. * st.c (gfc_get_code): Add argument 'op'. * trans-expr.c (gfc_trans_class_array_init_assign): Call 'gfc_get_code' with argument. * trans-stmt.c (gfc_trans_allocate): Ditto. From-SVN: r201635
2013-08-09cgraph.h (cgraph_node): Add profile_id.Jan Hubicka9-59/+161
* cgraph.h (cgraph_node): Add profile_id. * value-prof.c (cgraph_node_map): Turn into pointer_map. (init_node_map): Rewrite to handle hashes increas of incremental IDs. (del_node_map): Update. (find_func_by_funcdef_no): Replace by ... (find_func_by_profile_id): ... this one. (gimple_ic_transform): Do not remove useful histograms when speculation is not done; dump info when indirect call removal can happen at LTO. * value-prof.h (find_func_by_profile_id, gimple_ic): Declare. * gcov-io.h (__gcov_indirect_call_profiler): Replace by ... (__gcov_indirect_call_profiler_v2): .. this one. * profile.h (init_node_map): Update. * coverage.c (coverage_compute_profile_id): New function. * coverage.h (coverage_compute_profile_id): Declare. * tree-profile.c (init_ic_make_global_vars): Make __gcov_indirect_call_callee and __gcov_indirect_call_counters global. (gimple_init_edge_profiler): Update prototype of __gcov_indirect_call_profiler. (gimple_gen_ic_func_profiler): Simplify. (tree_profiling): Use init_node_map From-SVN: r201634
2013-08-09re PR fortran/58058 (Memory leak with transfer function)Janus Weil4-2/+39
2013-08-09 Janus Weil <janus@gcc.gnu.org> PR fortran/58058 * trans-intrinsic.c (gfc_conv_intrinsic_transfer): Free the temporary string, if necessary. 2013-08-09 Janus Weil <janus@gcc.gnu.org> PR fortran/58058 * gfortran.dg/transfer_intrinsic_6.f90: New. From-SVN: r201633
2013-08-09cgraphbuild.c (cgraph_rebuild_references): Rebuild only non-speculative refs.Jan Hubicka15-114/+677
* cgraphbuild.c (cgraph_rebuild_references): Rebuild only non-speculative refs. * cgraph.c (cgraph_update_edge_in_call_site_hash): New function. (cgraph_add_edge_to_call_site_hash): Deal with speculative calls. (cgraph_set_call_stmt): Likewise. (cgraph_create_edge_1): Fix release checking compilatoin; clear lto_stmt_uid. (cgraph_free_edge): Free indirect info. (cgraph_turn_edge_to_speculative): New function. (cgraph_speculative_call_info): New function. (cgraph_make_edge_direct): Return direct edge; handle speculation. (cgraph_redirect_edge_call_stmt_to_callee): Expand speculative edges. (dump_cgraph_node): Dump speculation. (verify_edge_count_and_frequency): Accept speculative edges. (verify_edge_corresponds_to_fndecl): Handle partitioned cgraph. (verify_cgraph_node): Handle speculation. * cgraph.h (cgraph_edge): Add SPECULATIVE flag. (cgraph_set_call_stmt): Update prototype. (cgraph_make_edge_direct): Update prototype. (cgraph_speculative_call_info): Declare. * ipa-cp.c (ipcp_discover_new_direct_edges): Be ready for edge to change; update call of ipa_find_references. * ipa-ref.c (ipa_record_reference): Fix return value; clear lto_stmt_uid and speculative flags. (ipa_dump_references): Dump speculation. (ipa_clone_references): Clone speculative flag. (ipa_clone_referring): Likewise. (ipa_clone_ref): New function. (ipa_find_reference): Look into lto_stmt_uids (ipa_clear_stmts_in_references): Do not clear speculative calls. * ipa-ref.h (ipa_ref): Add lto_stmt_uid and speculative flags. (ipa_find_reference): Update declaration. (ipa_clone_ref): Declare. * lto-cgraph.c (lto_output_edge): Make lto_stmt_uids start from 0; stream speculative flag. (lto_output_ref): Stream statements uids and speculation. (input_ref): Likewise. (input_edge): Stream speuclation. * cgraphclones.c (cgraph_clone_edge): Clone speculation. (cgraph_set_call_stmt_including_clones): Handle speculation. * ipa-inline.c (heap_edge_removal_hook): New function. (inline_small_functions): Register it. * lto-streamer-in.c (fixup_call_stmt_edges_1): Bounds checking; also initialize refs. * ipa-prop.c (ipa_make_edge_direct_to_target): Be ready for edge to change. (try_make_edge_direct_simple_call): Likewise. (try_make_edge_direct_simple_call): Likewise. (update_indirect_edges_after_inlining): Likewise. (remove_described_reference): Look proper lto_stmt_uid. (propagate_controlled_uses): Likewise. (propagate_controlled_uses): Liekwise. * tree-inline.c (copy_bb): Copy speculative edges. (redirect_all_calls): New function. (copy_cfg_body): Do redirection after loop info is updated. (delete_unreachable_blocks_update_callgraph): Updadte speculation. From-SVN: r201632
2013-08-09revert: re PR c++/46206 (using typedef-name error with typedef name hiding ↵Paolo Carlini4-34/+21
struct name) /cp 2013-08-09 Paolo Carlini <paolo.carlini@oracle.com> Revert: 2013-08-07 Paolo Carlini <paolo.carlini@oracle.com> PR c++/46206 * name-lookup.c (lookup_name_real_1): Handle iter->type before iter->value. /testsuite 2013-08-09 Paolo Carlini <paolo.carlini@oracle.com> Revert: 2013-08-07 Paolo Carlini <paolo.carlini@oracle.com> PR c++/46206 * g++.dg/lookup/typedef2.C: New. From-SVN: r201629
2013-08-09lto-streamer-out.c (output_function): Renumber PHIs.Jan Hubicka3-1/+38
* lto-streamer-out.c (output_function): Renumber PHIs. * lto-streamer-in.c (input_function): Likewise. From-SVN: r201627
2013-08-09* c-ada-spec.c (print_ada_declaration): Prevent accessing null asm nameArnaud Charlet2-1/+5
From-SVN: r201625
2013-08-09[AArch64] Fixup the vget_lane RTL patterns and intrinsicsJames Greenhalgh7-129/+236
gcc/ * config/aarch64/aarch64-simd-builtins.def (get_lane_signed): Remove. (get_lane_unsigned): Likewise. (dup_lane_scalar): Likewise. (get_lane): enable for VALL. * config/aarch64/aarch64-simd.md (aarch64_dup_lane_scalar<mode>): Remove. (aarch64_get_lane_signed<mode>): Likewise. (aarch64_get_lane_unsigned<mode>): Likewise. (aarch64_get_lane_extend<GPI:mode><VDQQH:mode>): New. (aarch64_get_lane_zero_extendsi<mode>): Likewise. (aarch64_get_lane<mode>): Enable for all vector modes. (aarch64_get_lanedi): Remove misleading constraints. * config/aarch64/arm_neon.h (__aarch64_vget_lane_any): Define. (__aarch64_vget<q>_lane_<fpsu><8,16,32,64>): Likewise. (vget<q>_lane_<fpsu><8,16,32,64>): Use __aarch64_vget_lane macros. (vdup<bhsd>_lane_<su><8,16,32,64>): Likewise. * config/aarch64/iterators.md (VDQQH): New. (VDQQHS): Likewise. (vwcore): Likewise. gcc/testsuite/ * gcc.target/aarch64/scalar_intrinsics.c: Update expected output of vdup intrinsics. From-SVN: r201624
2013-08-09Fix typoEric Botcazou1-1/+1
From-SVN: r201623
2013-08-09configure.ac: Add GAS check for LEON instructions on SPARC.Eric Botcazou9-15/+116
* configure.ac: Add GAS check for LEON instructions on SPARC. * configure: Regenerate. * config.in: Likewise. * config.gcc (with_cpu): Remove sparc-leon*-* and deal with LEON in the sparc*-*-* block. * config/sparc/sparc.opt (LEON, LEON3): New masks. * config/sparc/sparc.h (ASM_CPU32_DEFAULT_SPEC): Set to AS_LEON_FLAG for LEON or LEON3. (ASM_CPU_SPEC): Pass AS_LEON_FLAG if -mcpu=leon or -mcpu=leon3. (AS_LEON_FLAG): New macro. * config/sparc/sparc.c (sparc_option_override): Set MASK_LEON for leon and MASK_LEON3 for leon3 and unset them if HAVE_AS_LEON is not defined. Deal with LEON and LEON3 for the memory model. * config/sparc/sync.m (atomic_compare_and_swap<mode>): Enable for LEON3 (atomic_compare_and_swap<mode>_1): Likewise. (*atomic_compare_and_swap<mode>_1): Likewise. From-SVN: r201622
2013-08-09ChangeLog: Fix whitespace.Uros Bizjak2-41/+38
* ChangeLog: Fix whitespace. * testsuite/ChangeLog: Ditto. From-SVN: r201619
2013-08-09neon.md (vcond): Fix floating-point vector comparisons against 0.Zhenqiang Chen4-5/+56
ChangeLog: 2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org> * config/arm/neon.md (vcond): Fix floating-point vector comparisons against 0. testsuite/ChangeLog: 2013-08-09 Zhenqiang Chen <zhenqiang.chen@linaro.org> * gcc.target/arm/lp1189445.c: New testcase. From-SVN: r201618
2013-08-09Daily bump.GCC Administrator1-1/+1
From-SVN: r201614
2013-08-08lra-constraints.c (emit_spill_move): Remove assert.Vladimir Makarov2-30/+130
2013-08-08 Vladimir Makarov <vmakarov@redhat.com> * lra-constraints.c (emit_spill_move): Remove assert. (process_alt_operands): Add more debugging output. Increase reject for spilling into memory. Decrease reject for reloading scratch. (split_reg): Use HARD_REGNO_CALLER_SAVE_MODE. From-SVN: r201611
2013-08-08mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.Steve Ellcey4-11/+19
2013-08-08 Steve Ellcey <sellcey@mips.com> * config/mips/mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008. * config/mips/t-mti-elf (MULTILIB_OPTIONS): Make mips16 and micromips incompatible. Add nan2008. (MULTILIB_DIRNAMES): Add nan2008. (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry. * config/mips/t-mti-linux (MULTILIB_OPTIONS): Make mips16 and micromips incompatible. Add nan2008. (MULTILIB_DIRNAMES): Add nan2008. (MULTILIB_EXCEPTIONS): Remove mips16/micromips entry. From-SVN: r201610
2013-08-08re PR rtl-optimization/58079 (internal compiler error: in do_SUBST, at ↵Richard Sandiford4-2/+126
combine.c:711) gcc/ PR rtl-optimization/58079 * combine.c (combine_simplify_rtx): Avoid using SUBST if simplify_comparison has widened a comparison with an integer. gcc/testsuite/ * gcc.dg/torture/pr58079.c: New test. From-SVN: r201609
2013-08-08neon.md (movmisalign<mode>): Disable when we don't allow unaligned accesses.Kyrylo Tkachov2-5/+14
2013-08-08 Kyrylo Tkachov <kyrylo.tkachov@arm.com> * config/arm/neon.md (movmisalign<mode>): Disable when we don't allow unaligned accesses. (*movmisalign<mode>_neon_store): Likewise. (*movmisalign<mode>_neon_load): Likewise. (*movmisalign<mode>_neon_store): Likewise. (*movmisalign<mode>_neon_load): Likewise. From-SVN: r201604
2013-08-08Makefile.in (TOOLS_LIBS): Pick C object files from the compiler build and ↵Eric Botcazou2-10/+19
use standard library variables. * gcc-interface/Makefile.in (TOOLS_LIBS): Pick C object files from the compiler build and use standard library variables. (../../vxaddr2line$(exeext): Do not depend on targext.o and adjust. (gnatmake-re): Do not depend on targext.o. (gnatlink-re): Do not depend on link.o and targext.o. (../../gnatmake$(exeext): Likewise. (../../gnatlink$(exeext): Likewise. From-SVN: r201602
2013-08-08cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.Jan Hubicka10-49/+114
* cgraphbuild.c (build_cgraph_edges): Do not walk into debugs. (make_pass_rebuild_cgraph_edges): Also clear references. * cgraph.c (verify_cgraph_node): Add basic ipa-ref verifier. * ipa-inline-transform.c (inline_transform): Remove all references after inlining. * cgraphunit.c (expand_function): Remove all references after expansion. * ipa-ref.c (ipa_ref_has_aliases_p): Fix formatting. (ipa_find_reference): Rewrite to iterator. (remove_stmt_references): Likewise. (ipa_clear_stmts_in_references): New function. * ipa-ref.h (ipa_clear_stmts_in_references): Declare. * cgraphclones.c (cgraph_materialize_all_clones): Remove or clear references. * ipa-split.c (split_function): Remove references in split function. From-SVN: r201601
2013-08-08re PR target/57431 (ICE in simplify_const_unary_operation vld1_dup_s64/vst1_s64)Richard Earnshaw2-12/+19
PR target/57431 * arm/neon.md (neon_vld1_dupdi): New expand pattern. (neon_vld1_dup<mode> VD iterator): Iterate over VD not VDX. From-SVN: r201599
2013-08-08re PR target/56979 (ICE in output_operand: invalid operand for code 'P')Richard Earnshaw2-1/+10
PR target/56979 * arm.c (aapcs_vfp_allocate): Decompose the argument if the suggested mode for the assignment isn't compatible with the registers required. From-SVN: r201598
2013-08-08Fix MALLOC_ABI_ALIGNMENT for arm Bernd Edlinger2-0/+7
2013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de> PR target/58065 * config/arm/arm.h (MALLOC_ABI_ALIGNMENT): New, From-SVN: r201589
2013-08-08Daily bump.GCC Administrator1-1/+1
From-SVN: r201588
2013-08-07Implement -mtune-crl=..Xinliang David Li5-75/+155
From-SVN: r201582
2013-08-07re PR other/12081 (Gcc can't be compiled with -mregparm=3)Oleg Endo2-5/+9
PR other/12081 config/rs6000/rs6000.c (gen_2arg_fn_t): Remove typedef. (rs6000_emit_swdiv, rs6000_emit_swrsqrt): Don't cast result of GEN_FCN to gen_2arg_fn_t. From-SVN: r201580
2013-08-07compiler: Fix "missing return" error for case T1, T2 in type switches.Ian Lance Taylor3-3/+14
Also change the "missing return" text and report it at the end of the function, rather than the start, to match the gc compiler. From-SVN: r201579
2013-08-07rtl.h (update_alignments): Declare.Eric Botcazou4-25/+86
* rtl.h (update_alignments): Declare. * final.c (grow_label_align): New function extracted from... (shorten_branches): ...here. Call it. (update_alignments): New function. * reorg.c (sibling_labels): New variable. (get_label_before): Add SIBLING parameter. If it is non-zero, push the new label along with it onto the sibling_labels vector. (fill_simple_delay_slots): Adjust call to get_label_before. (fill_slots_from_thread): Likewise. (relax_delay_slots): Likewise. (make_return_insns): Likewise. (dbr_schedule): Invoke update_alignment on the sibling_labels vector. From-SVN: r201575
2013-08-07diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and ↵Eric Botcazou4-5/+27
document its semantics. * diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and document its semantics. (diagnostic_report_diagnostic): Adjust accordingly. From-SVN: r201574
2013-08-07sparc.c (insert_pass_work_around_errata): Move into...David Malcolm3-9/+17
2013-08-07 David Malcolm <dmalcolm@redhat.com> * config/sparc/sparc.c (insert_pass_work_around_errata): Move into... (sparc_option_override): ...and port to new C++ pass API. * config/sparc/t-sparc (sparc.o): Add dep on CONTEXT_H From-SVN: r201569
2013-08-07* config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.Peter Bergner2-3/+4
From-SVN: r201565
2013-08-07re PR c++/46206 (using typedef-name error with typedef name hiding struct name)Paolo Carlini4-4/+45
/cp 2013-08-07 Paolo Carlini <paolo.carlini@oracle.com> PR c++/46206 * name-lookup.c (lookup_name_real_1): Handle iter->type before iter->value. /testsuite 2013-08-07 Paolo Carlini <paolo.carlini@oracle.com> PR c++/46206 * g++.dg/lookup/typedef2.C: New. From-SVN: r201558
2013-08-06Commit the vtable verification feature.Caroline Tice25-19/+2619
Commit the vtable verification feature. This feature is designed to detect, at run time, if/when the vtable pointer in a C++ object has been corrupted, before allowing virtual calls through that pointer. If pointer corruption is detected, execution of the program is halted. libstdc++-v3 ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * fragment.am: Add XTEMPLATE_FLAGS. * configure.ac: Add definitions for --enable-vtable-verify. * acinclude.m4: Add --enable-vtable-verify and --disable-vtable-verify; define --enable-vtable-verify; define VTV_CXXFLAGS, VTV_PCH_CXXFLAGS and VTV_CXXLINKFLAGS. * config/abi/pre/gnu.ver: Export symbols for vtable verification. * libsupc++/Makefile.am: Define vtv_sources and add it to libsupc___la_SOURCES and libsupc__convenience_la_SOURCES. * libsupc++/vtv_stubs.cc: New file. * include/Makefile.am: Add VTV_PCH_CXXFLAGS to PCHFLAGS. * src/Makefile.am: Add VTV_CXXFLAGS to AM_CXXFLAGS; add VTV_CXXLINKFLAGS to CXXLINK. * src/c++98/Makefile.am: Comment out XTEMPLATE_FLAGS; add VTV_CXXFLAGS to AM_CXXFLAGS; add VTV_CXXXLINKFLAGS to CXXLINK. * src/C++11/Makefile.am: Ditto. * doc/xml/manual/configure.xml: Add entry for --enable-vtable-verify. * scripts/testsuite_flags.in: Add cxxvtvflags to Usage; cause cxxvtvflags to use VTV_CXXFLAGS and VTV_CXXLINKFLAGS. * testsuite/lib/libstdc++.exp: Add cxxvtvflags; add code to locate libvtv if --enable-vtable-verify was used; set cxxvtvflags; add cxxvtvflags to cxx_final. * testsuite/18_support/bad_exception/23591_thread-1.c: Add -fvtable-verify=none to compiler flags. * testsuite/17_intro/freestanding.cc: Add -fvtable-verify=none to compiler flags. * configure: Regenerated. * Makefile.in: Regenerated. * python/Makefile.in: Regenerated. * include/Makefile.in: Regenerated. * libsupc++/Makefile.in: Regenerated. * config.h.in: Regenerated. * po/Makefile.in: Regenerated. * src/Makefile.in: Regenerated. * src/c++98/Makefile.in: Regenerated. * src/c++11/Makefile.in: Regenerated. * doc/Makefile.in: Regenerated. * testsuite/Makefile.in: Regenerated. top level ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * configure.ac: Add target-libvtv to target_libraries; disable libvtv on non-linux systems; add target-libvtv to noconfigdirs; add libsupc++/.libs to C++ library search paths. * configure: Regenerated. * Makefile.def: Add libvtv to target_modules; make libvtv depend on libstdc++ and libgcc. * Makefile.in: Regenerated. include/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * vtv-change-permission.h: New file. contrib/ChangeLog: 2013-08-06 Caroline Tice4 <cmtice@google.com> * gcc_update: Add libvtv files. libgcc/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> config.host (extra_parts): Add vtv_start.o, vtv_end.o vtv_start_preinit.o and vtv_end_preinit.o. configure.ac: Add code to check/set enable_vtable_verify. Makefile.in: Add rules to build vtv_*.o, if enable_vtable_verify is true. vtv_start_preinit.c: New file. vtv_end_preinit.c: New file. vtv_start.c: New file. vtv_end.c: New file. configure: Regenerated. gcc/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * gcc.c (VTABLE_VERIFICATION_SPEC): New definition. (LINK_COMMAND_SPEC): Add VTABLE_VERIFICATION_SPEC. * tree-pass.h: Add pass_vtable_verify. * varasm.c (assemble_variable): Add code to properly set the comdat section and name for the .vtable_map_vars section. (assemble_vtyv_preinit_initializer): New function. (default_sectin_type_flags): Make sure .vtable_map_vars section has LINK_ONCE flag. * output.h: Add function decl for assemble_vtv_preinit_initializer. * vtable-verify.c: New file. * vtable-verify.h: New file. * flag-types.h (enum vtv_priority): Defintions for flag_vtable_verify initialiation levels. * timevar.def (TV_VTABLE_VERIFICATION): New definition. * passes.def: Insert pass_vtable_verify. * aclocal.m4: Reorder includes. * doc/invoke.texi: Add documentation for the flags -fvtable-verify=, -fvtv-debug and -fvtv-counts. * config/gnu-user.h (GNU_USER_TARGET_STARTFILE_SPEC): Add vtv_start*.o, as appropriate, if -fvtable-verify=... is used. (GNU_USER_TARGET_ENDFILE_SPEC): Add vtv_end*.o as appropriate, if -fvtable-verify=... is used. * Makefile.in (OBJS): Add vtable-verify.o to list. (vtable-verify.o): Add new build rule. (GTFILES): Add vtable-verify.c to list. * common.opt (fvtable-verify=): New flag. (vtv_priority): Values for fvtable-verify= flag. (fvtv-counts): New flag. (fvtv-debug): New flag. * tree.h (save_vtable_map_decl): New extern function decl. gcc/cp/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> * Make-lang.in (*CXX_AND_OBJCXX_OBJS): Add vtable-class-hierarchy.o to list. (vtable-class-hierarchy.o): Add build rule. * cp-tree.h (vtv_start_verification_constructor_init_function): New extern function decl. (vtv_finish_verification_constructor_init_function): New extern function decl. (build_vtbl_address): New extern function decl. (get_mangled_vtable_map_var_name): New extern function decl. (vtv_compute_class_hierarchy_transitive_closure): New extern function decl. (vtv_generate_init_routine): New extern function decl. (vtv_save_class_info): New extern function decl. (vtv_recover_class_info): New extern function decl. (vtv_build_vtable_verify_fndecl): New extern function decl. * class.c (finish_struct_1): Add call to vtv_save_class_info if flag_vtable_verify is true. * config-lang.in: Add vtable-class-hierarchy.c to gtfiles list. * vtable-class-hierarchy.c: New file. * mangle.c (get_mangled_vtable_map_var_name): New function. * decl2.c (start_objects): Update function comment. (cp_write_global_declarations): Call vtv_recover_class_info, vtv_compute_class_hierarchy_transitive_closure and vtv_build_vtable_verify_fndecl, before calling finalize_compilation_unit, and call vtv_generate_init_rount after, IFF flag_vtable_verify is true. (vtv_start_verification_constructor_init_function): New function. (vtv_finish_verification_constructor_init_function): New function. * init.c (build_vtbl_address): Remove static qualifier from function. libvtv/ChangeLog: 2013-08-06 Caroline Tice <cmtice@google.com> Initial check-in of new vtable verification feature. * configure.ac : New file. * acinclude.m4 : New file. * Makefile.am : New file. * aclocal.m4 : New file. * configure.tgt : New file. * configure: New file (generated). * Makefile.in: New file (generated). * vtv_set.h : New file. * vtv_utils.cc : New file. * vtv_utils.h : New file. * vtv_malloc.cc : New file. * vtv_rts.cc : New file. * vtv_malloc.h : New file. * vtv_rts.h : New file. * vtv_fail.cc : New file. * vtv_fail.h : New file. * vtv_map.h : New file. * scripts/run-testsuite.sh : New file. * scripts/sum-vtv-counts.c : New file. * testsuite/parts-test-main.h : New file. * testusite/dataentry.cc : New file. * testsuite/temp_deriv.cc : New file. * testsuite/register_pair.cc : New file. * testsuite/virtual_inheritance.cc : New file. * testsuite/field-test.cc : New file. * testsuite/nested_vcall_test.cc : New file. * testsuite/template-list-iostream.cc : New file. * testsuite/register_pair_inserts.cc : New file. * testsuite/register_pair_inserts_mt.cc : New file. * testsuite/event.list : New file. * testsuite/parts-test-extra-parts-views.cc : New file. * testsuite/parts-test-extra-parts-views.h : New file. * testsuite/environment-fail-32.s : New file. * testsuite/parts-test-extra-parts.h : New file. * testsuite/temp_deriv2.cc : New file. * testsuite/dlopen_mt.cc : New file. * testsuite/event.h : New file. * testsuite/template-list.cc : New file. * testsuite/replace-fail.cc : New file. * testsuite/Makefile.am : New file. * testsuite/Makefile.in: New file (generated). * testsuite/mempool_negative.c : New file. * testsuite/parts-test-main.cc : New file. * testsuite/event-private.cc : New file. * testsuite/thunk.cc : New file. * testsuite/event-defintiions.cc : New file. * testsuite/event-private.h : New file. * testsuite/parts-test.list : New file. * testusite/register_pair_mt.cc : New file. * testsuite/povray-derived.cc : New file. * testsuite/event-main.cc : New file. * testsuite/environment.cc : New file. * testsuite/template-list2.cc : New file. * testsuite/thunk_vtable_map_attack.cc : New file. * testsuite/parts-test-extra-parts.cc : New file. * testsuite/environment-fail-64.s : New file. * testsuite/dlopen.cc : New file. * testsuite/so.cc : New file. * testsuite/temp_deriv3.cc : New file. * testsuite/const_vtable.cc : New file. * testsuite/mempool_positive.c : New file. * testsuite/dup_name.cc : New file. From-SVN: r201555
2013-08-07rl78.c (rl78_devirt_pass): Convert from a struct to...David Malcolm2-19/+52
2013-08-07 David Malcolm <dmalcolm@redhat.com> * config/rl78/rl78.c (rl78_devirt_pass): Convert from a struct to... (pass_rl78_devirt): ...new subclass of rtl_opt_pass along with... (pass_data_rl78_devirt): ...new pass_data instance and... (make_pass_rl78_devirt): ...new function. (rl78_asm_file_start): Port pass registration to new C++ API. From-SVN: r201553