Eric Botcazou [Tue, 13 Aug 2013 19:58:24 +0000 (19:58 +0000)]
decl.c (gnat_to_gnu_entity): Do not bother about alias sets of derived types in ASIS mode.
* gcc-interface/decl.c (gnat_to_gnu_entity): Do not bother about alias
sets of derived types in ASIS mode.
From-SVN: r201705
Eric Botcazou [Tue, 13 Aug 2013 19:53:37 +0000 (19:53 +0000)]
decl.c (gnat_to_gnu_entity): Replace True with true.
* gcc-interface/decl.c (gnat_to_gnu_entity): Replace True with true.
(is_cplusplus_method): Likewise, and False with false.
(components_need_strict_alignment): Likewise.
* gcc-interface/misc.c (gnat_init_gcc_fp): Likewise.
* gcc-interface/trans.c (Loop_Statement_to_gnu): Likewise.
(Handled_Sequence_Of_Statements_to_gnu): Likewise.
(add_cleanup): Likewise.
(Sloc_to_locus1): Likewise.
(Sloc_to_locus): Likewise.
(set_expr_location_from_node): Likewise.
* gcc-interface/utils.c (potential_alignment_gap): Likewise.
From-SVN: r201704
Thomas Quinot [Tue, 13 Aug 2013 19:49:21 +0000 (19:49 +0000)]
trans.c (set_end_locus_from_node): Clear column info for the end_locus of a block if...
* gcc-interface/trans.c (set_end_locus_from_node): Clear column info
for the end_locus of a block if it does not come from an End_Label.
From-SVN: r201703
Thomas Quinot [Tue, 13 Aug 2013 19:43:47 +0000 (19:43 +0000)]
trans.c (Handled_Sequence_Of_Statements_to_gnu): If there is no End_Label...
* gcc-interface/trans.c (Handled_Sequence_Of_Statements_to_gnu): If
there is no End_Label, attach cleanup actions to the sloc of the HSS
node instead.
(Exception_Handler_to_gnu_zcx): Associate cleanup actions with the sloc
of the handler itself.
(add_cleanup): Clear column information in sloc of cleanup actions.
(Sloc_to_locus1): New static function.
(Sloc_to_locus): Call it.
(set_expr_location_from_node1): New static function.
(set_expr_location_from_node): Call it.
From-SVN: r201702
Julian Brown [Tue, 13 Aug 2013 17:33:09 +0000 (17:33 +0000)]
rs6000.c (rs6000_legitimize_reload_address): Don't perform invalid legitimization on greater-than-word-size modes for...
* config/rs6000/rs6000.c (rs6000_legitimize_reload_address): Don't
perform invalid legitimization on greater-than-word-size modes for
TARGET_E500_DOUBLE.
From-SVN: r201701
Eric Botcazou [Tue, 13 Aug 2013 17:13:47 +0000 (17:13 +0000)]
trans.c (Call_to_gnu): Deal with specific conditional expressions for misaligned actual parameters.
* gcc-interface/trans.c (Call_to_gnu): Deal with specific conditional
expressions for misaligned actual parameters.
From-SVN: r201700
Vladimir Makarov [Tue, 13 Aug 2013 17:10:07 +0000 (17:10 +0000)]
ira.c (setup_class_translate_array): Use aclass instead of cl for classes not fully covered by allocno classes.
2013-08-13 Vladimir Makarov <vmakarov@redhat.com>
* ira.c (setup_class_translate_array): Use aclass instead of cl
for classes not fully covered by allocno classes.
From-SVN: r201699
Jakub Jelinek [Tue, 13 Aug 2013 17:06:13 +0000 (19:06 +0200)]
re PR middle-end/57661 (ICE: SIGSEGV in verify_ssa)
PR tree-optimization/57661
* tree-inline.h (struct copy_body_data): Add blocks_to_copy field.
* tree-inline.c (tree_function_versioning): Initialize it.
(remap_gimple_stmt): Return GIMPLE_NOP for MEM_REF lhs clobber stmts
if id->blocks_to_copy and MEM_REF's SSA_NAME is defined in a block
that is not being copied.
* g++.dg/opt/pr57661.C: New test.
From-SVN: r201698
Jakub Jelinek [Tue, 13 Aug 2013 16:58:46 +0000 (18:58 +0200)]
re PR middle-end/56417 (internal compiler error: verify_gimple failed)
PR sanitizer/56417
* asan.c (instrument_strlen_call): Fix typo in comment.
Use char * type even for the lhs of POINTER_PLUS_EXPR.
* gcc.dg/asan/pr56417.c: New test.
From-SVN: r201696
Eric Botcazou [Tue, 13 Aug 2013 15:52:26 +0000 (15:52 +0000)]
trans.c (can_equal_min_or_max_val_p): Be prepared for values outside of the range of the type.
* gcc-interface/trans.c (can_equal_min_or_max_val_p): Be prepared for
values outside of the range of the type.
From-SVN: r201692
Steve Ellcey [Tue, 13 Aug 2013 15:49:39 +0000 (15:49 +0000)]
mips.md (prefetch): Use lw instead of ld on loongson in 32bit mode.
2013-08-13 Steve Ellcey <sellcey@mips.com>
* config/mips/mips.md (prefetch): Use lw instead of ld on
loongson in 32bit mode.
From-SVN: r201691
Nick Clifton [Tue, 13 Aug 2013 15:42:17 +0000 (15:42 +0000)]
* config.gcc: (avr-linux): Allow for tmake_file not being empty.
From-SVN: r201690
Maciej W. Rozycki [Tue, 13 Aug 2013 14:26:49 +0000 (14:26 +0000)]
* config.host <mips*-*-linux*>: Remove a stray comment.
From-SVN: r201689
Marek Polacek [Tue, 13 Aug 2013 13:23:55 +0000 (13:23 +0000)]
* gcc.dg/pr57980.c: Use vector of two elements, not just one.
From-SVN: r201686
Jan Hubicka [Tue, 13 Aug 2013 12:21:16 +0000 (14:21 +0200)]
cgraph.c (cgraph_turn_edge_to_speculative): Return newly introduced edge; fix typo in sanity check.
* cgraph.c (cgraph_turn_edge_to_speculative): Return newly
introduced edge; fix typo in sanity check.
(cgraph_resolve_speculation): Export; improve diagnostic.
(cgraph_redirect_edge_call_stmt_to_callee): Better diagnostic; cancel
speculation at type mismatch.
* cgraph.h (cgraph_turn_edge_to_speculative): Update.
(cgraph_resolve_speculation): Declare.
(symtab_can_be_discarded): New function.
* value-prof.c (gimple_ic_transform): Remove actual transform code.
* ipa-inline-transform.c (speculation_removed): New global var.
(clone_inlined_nodes): See if speculation can be removed.
(inline_call): If speculations was removed, we growths may not match.
* ipa-inline.c (can_inline_edge_p): Add DISREGARD_LIMITS parameter.
(speculation_useful_p): New function.
(resolve_noninline_speculation): New function.
(inline_small_functions): Resolve useless speculations.
* ipa-inline.h (speculation_useful_p): Declare
* ipa.c (can_replace_by_local_alias): Simplify.
(ipa_profile): Produce speculative calls in non-lto, too;
add simple cost model; produce local aliases.
From-SVN: r201683
Eric Botcazou [Tue, 13 Aug 2013 10:26:40 +0000 (10:26 +0000)]
utils2.c (build_atomic_load): Do a mere view-conversion to the original type before converting to the result type.
* gcc-interface/utils2.c (build_atomic_load): Do a mere view-conversion
to the original type before converting to the result type.
(build_atomic_store): First do a conversion to the original type before
view-converting to the effective type, but deal with a padded type
specially.
From-SVN: r201682
David Malcolm [Tue, 13 Aug 2013 00:45:27 +0000 (00:45 +0000)]
Example of converting global state to per-pass state.
gcc/testsuite
2013-08-13 David Malcolm <dmalcolm@redhat.com>
Example of converting global state to per-pass state.
* gcc.dg/plugin/one_time_plugin.c (one_pass::execute): Convert
global state "static int counter" to...
(one_pass::counter): ...this instance data.
From-SVN: r201681
David Malcolm [Tue, 13 Aug 2013 00:41:39 +0000 (00:41 +0000)]
one_time_plugin.c: (one_pass_gate): Convert to member function...
gcc/testsuite
2013-08-13 David Malcolm <dmalcolm@redhat.com>
* gcc.dg/plugin/one_time_plugin.c: (one_pass_gate): Convert
to member function...
(one_pass::gate): ...this.
(one_pass_exec): Convert to member function...
(one_pass::impl_execute): ...this.
From-SVN: r201680
David Malcolm [Tue, 13 Aug 2013 00:29:39 +0000 (00:29 +0000)]
t-i386 (i386.o): Rename stray PIPELINE_H to PASS_MANAGER_H
2013-08-13 David Malcolm <dmalcolm@redhat.com>
* config/i386/t-i386 (i386.o): Rename stray PIPELINE_H to
PASS_MANAGER_H
From-SVN: r201679
GCC Administrator [Tue, 13 Aug 2013 00:16:31 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r201678
Adam Butcher [Mon, 12 Aug 2013 23:26:18 +0000 (00:26 +0100)]
* pt.c: Grammar fix in comments ("it's" to "its").
From-SVN: r201674
Adam Butcher [Mon, 12 Aug 2013 23:26:09 +0000 (00:26 +0100)]
* MAINTAINERS (Write After Approval): Add myself.
From-SVN: r201673
Paolo Carlini [Mon, 12 Aug 2013 22:54:13 +0000 (22:54 +0000)]
re PR c++/57416 (internal compiler error: in gimple_expand_cfg, at cfgexpand.c:4575)
2013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/57416
* g++.dg/cpp0x/pr57416.C: New.
From-SVN: r201672
Paolo Carlini [Mon, 12 Aug 2013 22:37:20 +0000 (22:37 +0000)]
i386.c (ix86_function_versions): Use error + inform.
2013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
* config/i386/i386.c (ix86_function_versions): Use error + inform.
/cp
2013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
* decl.c (warn_extern_redeclared_static, duplicate_decls,
check_elaborated_type_specifier): Use error + inform.
* friend.c (make_friend_class): Likewise.
* semantics.c (finish_id_expression): Likewise.
/testsuite
2013-08-12 Paolo Carlini <paolo.carlini@oracle.com>
* g++.dg/cpp0x/constexpr-function2.C: Adjust for error -> inform
changes.
* g++.dg/cpp0x/constexpr-neg1.C: Likewise.
* g++.dg/cpp0x/defaulted2.C: Likewise.
* g++.dg/cpp0x/defaulted31.C: Likewise.
* g++.dg/cpp0x/error6.C: Likewise.
* g++.dg/cpp0x/gen-attrs-32.C: Likewise.
* g++.dg/cpp0x/override2.C: Likewise.
* g++.dg/cpp0x/parse1.C: Likewise.
* g++.dg/cpp0x/scoped_enum.C: Likewise.
* g++.dg/cpp0x/temp_default4.C: Likewise.
* g++.dg/ext/attrib32.C: Likewise.
* g++.dg/ext/gnu-inline-global-reject.C: Likewise.
* g++.dg/ext/mv13.C: Likewise.
* g++.dg/ext/mv7.C: Likewise.
* g++.dg/ext/mv9.C: Likewise.
* g++.dg/ext/pr57362.C: Likewise.
* g++.dg/ext/typeof10.C: Likewise.
* g++.dg/lookup/anon6.C: Likewise.
* g++.dg/lookup/crash6.C: Likewise.
* g++.dg/lookup/name-clash5.C: Likewise.
* g++.dg/lookup/name-clash6.C: Likewise.
* g++.dg/other/anon4.C: Likewise.
* g++.dg/other/error15.C: Likewise.
* g++.dg/other/error8.C: Likewise.
* g++.dg/other/redecl2.C: Likewise.
* g++.dg/parse/crash16.C: Likewise.
* g++.dg/parse/crash21.C: Likewise.
* g++.dg/parse/crash38.C: Likewise.
* g++.dg/parse/redef2.C: Likewise.
* g++.dg/parse/struct-as-enum1.C: Likewise.
* g++.dg/template/crash39.C: Likewise.
* g++.dg/template/redecl3.C: Likewise.
* g++.dg/tls/diag-3.C: Likewise.
* g++.dg/warn/Wredundant-decls-spec.C: Likewise.
* g++.old-deja/g++.benjamin/typedef01.C: Likewise.
* g++.old-deja/g++.benjamin/warn02.C: Likewise.
* g++.old-deja/g++.brendan/crash16.C: Likewise.
* g++.old-deja/g++.brendan/crash18.C: Likewise.
* g++.old-deja/g++.brendan/err-msg4.C: Likewise.
* g++.old-deja/g++.brendan/redecl1.C: Likewise.
* g++.old-deja/g++.brendan/static3.C: Likewise.
* g++.old-deja/g++.bugs/900127_02.C: Likewise.
* g++.old-deja/g++.jason/binding.C: Likewise.
* g++.old-deja/g++.jason/crash4.C: Likewise.
* g++.old-deja/g++.jason/crash7.C: Likewise.
* g++.old-deja/g++.jason/lineno.C: Likewise.
* g++.old-deja/g++.jason/scoping7.C: Likewise.
* g++.old-deja/g++.mike/misc3.C: Likewise.
* g++.old-deja/g++.mike/net44.C: Likewise.
* g++.old-deja/g++.mike/ns3.C: Likewise.
* g++.old-deja/g++.ns/alias4.C: Likewise.
* g++.old-deja/g++.ns/ns11.C: Likewise.
* g++.old-deja/g++.other/crash23.C: Likewise.
* g++.old-deja/g++.other/decl8.C: Likewise.
* g++.old-deja/g++.other/linkage3.C: Likewise.
* g++.old-deja/g++.other/typeck1.C: Likewise.
* g++.old-deja/g++.other/typedef5.C: Likewise.
* g++.old-deja/g++.pt/explicit34.C: Likewise.
* g++.old-deja/g++.pt/friend36.C: Likewise.
* obj-c++.dg/method-8.mm: Likewise.
* obj-c++.dg/tls/diag-3.mm: Likewise.
From-SVN: r201671
Caroline Tice [Mon, 12 Aug 2013 20:25:29 +0000 (13:25 -0700)]
Updating my information in MAINTAINERS.
From-SVN: r201669
Uros Bizjak [Mon, 12 Aug 2013 17:23:43 +0000 (19:23 +0200)]
[multiple changes]
2013-08-12 Uros Bizjak <ubizjak@gmail.com>
* config/i386/i386.md (floatunssi<mode>2 expand): Use MODEF mode
iterator instead of X87MODEF.
2013-08-12 Perez Read <netfirewall@gmail.com>
PR target/58132
* config/i386/i386.md (*movabs<mode>_1): Add <ptrsize> PTR before
operand 0 for intel asm alternative.
(*movabs<mode>_2): Ditto for operand 1.
testsuite/ChangeLog:
2013-08-12 Perez Read <netfirewall@gmail.com>
PR target/58132
* gcc.target/i386/movabs-1.c: New test.
From-SVN: r201668
James Greenhalgh [Mon, 12 Aug 2013 15:59:34 +0000 (15:59 +0000)]
[AArch64] Fix name of macros called in the vdup_lane Neon intrinsics
gcc/
* config/aarch64/arm_none.h
(vdup<bhsd>_lane_<su><8,16,32,64>): Fix macro call.
From-SVN: r201666
Nick Clifton [Mon, 12 Aug 2013 14:17:15 +0000 (14:17 +0000)]
* config.gcc (m32r-linux): Allow for tmake_file not being empty.
From-SVN: r201664
Yuri Rumyantsev [Mon, 12 Aug 2013 12:28:47 +0000 (12:28 +0000)]
i386.md (floatunssi<mode>2 expand): Add new expand for QI/HImode operand to 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
Alexander Monakov [Mon, 12 Aug 2013 09:40:28 +0000 (13:40 +0400)]
* doc/invoke.texi: Mention that -ftls-model does not force the final model.
From-SVN: r201661
Marek Polacek [Mon, 12 Aug 2013 08:46:41 +0000 (08:46 +0000)]
re PR tree-optimization/57980 (gcc 4.8.1 -foptimize-sibling-calls -O1 ICE in build_int_cst_wide, at tree.c:1210)
PR tree-optimization/57980
Co-Authored-By: Marc Glisse <marc.glisse@inria.fr>
From-SVN: r201660
Jan Hubicka [Mon, 12 Aug 2013 07:16:19 +0000 (07:16 +0000)]
Fix typo.
From-SVN: r201659
Thomas Koenig [Mon, 12 Aug 2013 05:50:03 +0000 (05:50 +0000)]
re PR fortran/56666 (Suppression flag for " DO loop at (1) will be executed 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
GCC Administrator [Mon, 12 Aug 2013 00:17:00 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r201657
Paolo Carlini [Sun, 11 Aug 2013 22:06:04 +0000 (22:06 +0000)]
re PR c++/53349 (Internal compiler error with constexpr and recursive data type)
2013-08-11 Paolo Carlini <paolo.carlini@oracle.com>
PR c++/53349
* g++.dg/cpp0x/constexpr-ice8.C: New.
From-SVN: r201654
GCC Administrator [Sun, 11 Aug 2013 00:16:31 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r201651
Jan Hubicka [Sat, 10 Aug 2013 20:52:06 +0000 (22:52 +0200)]
Workaround binutils PR14342
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
Jan Hubicka [Sat, 10 Aug 2013 09:59:56 +0000 (11:59 +0200)]
* cgraph.c (cgraph_create_edge_1): Clear speculative flag.
From-SVN: r201646
Xinliang David Li [Sat, 10 Aug 2013 03:48:01 +0000 (03:48 +0000)]
Implement -mmemcpy-strategy= and -mmemset-strategy= options
From-SVN: r201645
Carlos O'Donell [Sat, 10 Aug 2013 00:54:26 +0000 (00:54 +0000)]
MAINTAINERS (Write After Approval): Update email.
2013-08-09 Carlos O'Donell <carlos@redhat.com>
* MAINTAINERS (Write After Approval): Update email.
From-SVN: r201644
GCC Administrator [Sat, 10 Aug 2013 00:16:57 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r201643
Jan Hubicka [Fri, 9 Aug 2013 23:07:52 +0000 (01:07 +0200)]
* ipa-ref.c (ipa_clear_stmts_in_references): Clear lto_stmt_uid, too.
From-SVN: r201640
Jan Hubicka [Fri, 9 Aug 2013 22:53:00 +0000 (00:53 +0200)]
cgraph.c (cgraph_resolve_speculation): Cut frequency to CGRAPH_FREQ_MAX.
* 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
Ian Lance Taylor [Fri, 9 Aug 2013 20:51:16 +0000 (20:51 +0000)]
net: give C.getaddrinfo a hint that we only want SOCK_STREAM answers
This should be more efficient everywhere, and appears to be
required on Solaris.
Copied from master repository.
From-SVN: r201637
Yufeng Zhang [Fri, 9 Aug 2013 20:48:00 +0000 (20:48 +0000)]
lower-subreg-1.c: Skip aarch64*-*-*.
gcc/testsuite/
* gcc.dg/lower-subreg-1.c: Skip aarch64*-*-*.
From-SVN: r201636
Janus Weil [Fri, 9 Aug 2013 19:26:07 +0000 (21:26 +0200)]
gfortran.h (gfc_get_code): Modified prototype.
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
Jan Hubicka [Fri, 9 Aug 2013 18:23:23 +0000 (20:23 +0200)]
cgraph.h (cgraph_node): Add profile_id.
* 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
Janus Weil [Fri, 9 Aug 2013 16:57:58 +0000 (18:57 +0200)]
re PR fortran/58058 (Memory leak with transfer function)
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
Jan Hubicka [Fri, 9 Aug 2013 15:23:19 +0000 (17:23 +0200)]
cgraphbuild.c (cgraph_rebuild_references): Rebuild only non-speculative refs.
* 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
Paolo Carlini [Fri, 9 Aug 2013 12:04:19 +0000 (12:04 +0000)]
revert: re PR c++/46206 (using typedef-name error with typedef name hiding 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
Jan Hubicka [Fri, 9 Aug 2013 11:44:27 +0000 (13:44 +0200)]
lto-streamer-out.c (output_function): Renumber PHIs.
* lto-streamer-out.c (output_function): Renumber PHIs.
* lto-streamer-in.c (input_function): Likewise.
From-SVN: r201627
Arnaud Charlet [Fri, 9 Aug 2013 10:51:54 +0000 (10:51 +0000)]
* c-ada-spec.c (print_ada_declaration): Prevent accessing null asm name
From-SVN: r201625
James Greenhalgh [Fri, 9 Aug 2013 09:28:51 +0000 (09:28 +0000)]
[AArch64] Fixup the vget_lane RTL patterns and intrinsics
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
Eric Botcazou [Fri, 9 Aug 2013 09:22:59 +0000 (09:22 +0000)]
Fix typo
From-SVN: r201623
Eric Botcazou [Fri, 9 Aug 2013 09:13:32 +0000 (09:13 +0000)]
configure.ac: Add GAS check for LEON instructions on SPARC.
* 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
Tim Shen [Fri, 9 Aug 2013 07:53:28 +0000 (07:53 +0000)]
regex_constants.h: Change syntax_option_type to enum type.
2013-08-09 Tim Shen <timshen91@gmail.com>
* include/bits/regex_constants.h: Change syntax_option_type to enum
type.
From-SVN: r201621
Uros Bizjak [Fri, 9 Aug 2013 06:49:23 +0000 (08:49 +0200)]
ChangeLog: Fix whitespace.
* ChangeLog: Fix whitespace.
* testsuite/ChangeLog: Ditto.
From-SVN: r201619
Zhenqiang Chen [Fri, 9 Aug 2013 06:38:26 +0000 (06:38 +0000)]
neon.md (vcond): Fix floating-point vector comparisons against 0.
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
Benjamin Kosnik [Fri, 9 Aug 2013 03:51:02 +0000 (03:51 +0000)]
configure.ac: Adjust to check VTV_SUPPORTED.
2013-08-08 Benjamin Kosnik <bkoz@redhat.com>
* configure.ac: Adjust to check VTV_SUPPORTED.
* configure: Regenerated.
From-SVN: r201617
Benjamin Kosnik [Fri, 9 Aug 2013 03:50:55 +0000 (03:50 +0000)]
configure.tgt: Simplify, just use VTV_SUPPORTED.
gcc
2013-08-08 Benjamin Kosnik <bkoz@rehat.com>
Michael Meissner <meissner@linux.vnet.ibm.com>
* configure.tgt : Simplify, just use VTV_SUPPORTED.
gcc/libvtv
2013-08-08 Benjamin Kosnik <bkoz@redhat.com>
* configure.ac: Adjust to check VTV_SUPPORTED.
* configure: Regenerated.
From-SVN: r201616
GCC Administrator [Fri, 9 Aug 2013 00:16:51 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r201614
Vladimir Makarov [Thu, 8 Aug 2013 20:56:52 +0000 (20:56 +0000)]
lra-constraints.c (emit_spill_move): Remove assert.
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
Steve Ellcey [Thu, 8 Aug 2013 20:35:28 +0000 (20:35 +0000)]
mti-linux.h (SYSROOT_SUFFIX_SPEC): Add nan2008.
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
Richard Sandiford [Thu, 8 Aug 2013 18:42:21 +0000 (18:42 +0000)]
re PR rtl-optimization/58079 (internal compiler error: in do_SUBST, at 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
Caroline Tice [Thu, 8 Aug 2013 16:55:09 +0000 (09:55 -0700)]
Fix ChangeLog formatting errors.
From-SVN: r201606
Kyrylo Tkachov [Thu, 8 Aug 2013 16:48:14 +0000 (16:48 +0000)]
neon.md (movmisalign<mode>): Disable when we don't allow unaligned accesses.
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
Eric Botcazou [Thu, 8 Aug 2013 14:35:18 +0000 (14:35 +0000)]
Makefile.in (TOOLS_LIBS): Pick C object files from the compiler build and 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
Jan Hubicka [Thu, 8 Aug 2013 14:15:15 +0000 (16:15 +0200)]
cgraphbuild.c (build_cgraph_edges): Do not walk into debugs.
* 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
Richard Earnshaw [Thu, 8 Aug 2013 13:46:28 +0000 (13:46 +0000)]
re PR target/57431 (ICE in simplify_const_unary_operation vld1_dup_s64/vst1_s64)
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
Richard Earnshaw [Thu, 8 Aug 2013 13:34:45 +0000 (13:34 +0000)]
re PR target/56979 (ICE in output_operand: invalid operand for code 'P')
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
Rainer Orth [Thu, 8 Aug 2013 13:34:12 +0000 (13:34 +0000)]
Don't use _B etc. in libstdc++
* include/bits/regex.h: Replace _A, _B, _C, _R by _Ap, _Bp,
_Cp, _Rp.
From-SVN: r201596
François Dumont [Thu, 8 Aug 2013 09:47:29 +0000 (09:47 +0000)]
hashtable_policy.h (_Hashtable_alloc): New.
2013-08-08 François Dumont <fdumont@gcc.gnu.org>
* include/bits/hashtable_policy.h (_Hashtable_alloc): New.
(_ReuseOrAllocNode, _AllocNode): Adapt to use latter rather than
_Hashtable.
(_Before_begin<>): Remove.
* include/bits/hashtable.h (_Hashtable): Inherit from
_Hashtable_alloc and adapt. Restore _M_before_begin field.
* src/c++11/hashtable_c++0x.cc: Add ext/alloc_traits.h include.
* python/libstdcxx/v6/printers.py (StdHashtableIterator): Adapt
access to hashtable before begin.
* testsuite/23_containers/unordered_set/
not_default_constructible_hash_neg.cc: Adapt dg-error line number.
* testsuite/23_containers/unordered_set/instantiation_neg.cc:
Likewise.
From-SVN: r201592
Bernd Edlinger [Thu, 8 Aug 2013 08:15:57 +0000 (08:15 +0000)]
Fix MALLOC_ABI_ALIGNMENT for arm
2013-08-08 Bernd Edlinger <bernd.edlinger@hotmail.de>
PR target/58065
* config/arm/arm.h (MALLOC_ABI_ALIGNMENT): New,
From-SVN: r201589
GCC Administrator [Thu, 8 Aug 2013 00:17:15 +0000 (00:17 +0000)]
Daily bump.
From-SVN: r201588
Benjamin Kosnik [Wed, 7 Aug 2013 23:40:49 +0000 (23:40 +0000)]
Makefile.am (SUBDIRS): Protect with ENABLE_VTABLE_VERIFY.
2013-08-07 Benjamin Kosnik <bkoz@rehat.com>
* Makefile.am (SUBDIRS): Protect with ENABLE_VTABLE_VERIFY.
* Makefile.in: Regenerate.
* acinclude.m4 (LIBVTV_CONFIGURE): Move parts to..
* configure.ac: ...here. Make configure more verbose, re-order.
* configure: Regenerate.
From-SVN: r201585
Paolo Carlini [Wed, 7 Aug 2013 22:08:07 +0000 (22:08 +0000)]
2013-08-07 Paolo Carlini <paolo.carlini@oracle.com>
Remove autom4te.cache dir.
From-SVN: r201583
Xinliang David Li [Wed, 7 Aug 2013 20:50:26 +0000 (20:50 +0000)]
Implement -mtune-crl=..
From-SVN: r201582
Oleg Endo [Wed, 7 Aug 2013 19:20:37 +0000 (19:20 +0000)]
re PR other/12081 (Gcc can't be compiled with -mregparm=3)
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
Ian Lance Taylor [Wed, 7 Aug 2013 19:01:16 +0000 (19:01 +0000)]
compiler: Fix "missing return" error for case T1, T2 in type switches.
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
Eric Botcazou [Wed, 7 Aug 2013 17:17:07 +0000 (17:17 +0000)]
rtl.h (update_alignments): Declare.
* 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
Eric Botcazou [Wed, 7 Aug 2013 17:15:25 +0000 (17:15 +0000)]
diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and document its semantics.
* diagnostic.c (diagnostic_classify_diagnostic): Accept zero index and
document its semantics.
(diagnostic_report_diagnostic): Adjust accordingly.
From-SVN: r201574
Tim Shen [Wed, 7 Aug 2013 16:27:36 +0000 (16:27 +0000)]
Makefile.am: Adjust to new files.
2013-08-07 Tim Shen <timshen91@gmail.com>
* include/Makefile.am: Adjust to new files.
* include/Makefile.in: Regenerate.
* include/bits/regex.h: Adjust to new interfaces.
* include/bits/regex_automaton.h: New.
* include/bits/regex_automaton.tcc: New.
* include/bits/regex_compiler.h: Adjust to new files.
* include/bits/regex_compiler.tcc: New.
* include/bits/regex_constants.h: Tail spaces.
* include/bits/regex_error.h: Likewise.
* include/bits/regex_executor.h: New.
* include/bits/regex_executor.tcc: New.
* include/std/regex: Adjust to new files.
* testsuite/28_regex/algorithms/regex_match/extended/
string_dispatch_01.cc: Adjust to new interfaces.
From-SVN: r201573
David Malcolm [Wed, 7 Aug 2013 15:48:38 +0000 (15:48 +0000)]
sparc.c (insert_pass_work_around_errata): Move into...
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
Paolo Carlini [Wed, 7 Aug 2013 14:26:15 +0000 (14:26 +0000)]
atomicity.h: Add #pragma GCC system_header.
2013-08-07 Paolo Carlini <paolo.carlini@oracle.com>
* include/ext/atomicity.h: Add #pragma GCC system_header.
From-SVN: r201567
Richard Earnshaw [Wed, 7 Aug 2013 13:51:38 +0000 (13:51 +0000)]
configure.ac: Set need_64bit_hwint for all arm targets.
* configure.ac: Set need_64bit_hwint for all arm targets.
* configure: Regenerated.
From-SVN: r201566
Peter Bergner [Wed, 7 Aug 2013 13:21:47 +0000 (08:21 -0500)]
* config/rs6000/rs6000.c (htm_expand_builtin) <case 0>: Remove.
From-SVN: r201565
Paolo Carlini [Wed, 7 Aug 2013 11:41:30 +0000 (11:41 +0000)]
re PR libstdc++/58098 (wrong return value of normal_distribution::min())
2013-08-07 Paolo Carlini <paolo.carlini@oracle.com>
PR libstdc++/58098
* include/bits/random.h (cauchy_distribution<>::min,
extreme_value_distribution<>::min, normal_distribution<>::min,
student_t_distribution<>::min): Fix.
* include/ext/random (normal_mv_distribution<>::min): Likewise.
* testsuite/26_numerics/random/cauchy_distribution/cons/parms.cc:
Adjust.
testsuite/26_numerics/random/cauchy_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/extreme_value_distribution/cons/
parms.cc: Likewise.
testsuite/26_numerics/random/extreme_value_distribution/cons/
default.cc: Likewise.
* testsuite/26_numerics/random/normal_distribution/cons/parms.cc:
Likewise.
* testsuite/26_numerics/random/normal_distribution/cons/default.cc:
Likewise.
* testsuite/26_numerics/random/student_t_distribution/cons/parms.cc:
Likewise.
* testsuite/26_numerics/random/student_t_distribution/cons/default.cc:
Likewise.
* testsuite/ext/random/normal_mv_distribution/cons/parms.cc: Likewise.
* testsuite/ext/random/normal_mv_distribution/cons/default.cc: Likewise.
* testsuite/26_numerics/random/exponential_distribution/cons/parms.cc:
Minor tweak.
* testsuite/26_numerics/random/exponential_distribution/cons/default.cc:
Likewise.
* testsuite/ext/von_mises_distribution/*: Move to...
* testsuite/ext/random/von_mises_distribution/*: ... here.
* testsuite/ext/triangular_distribution/*: Move to...
* testsuite/ext/random/triangular_distribution/*: ... here.
From-SVN: r201562
Paolo Carlini [Wed, 7 Aug 2013 10:10:27 +0000 (10:10 +0000)]
re PR c++/46206 (using typedef-name error with typedef name hiding struct name)
/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
Caroline Tice [Wed, 7 Aug 2013 03:38:59 +0000 (20:38 -0700)]
Commit the vtable verification feature.
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
David Malcolm [Wed, 7 Aug 2013 01:50:43 +0000 (01:50 +0000)]
rl78.c (rl78_devirt_pass): Convert from a struct to...
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
David Malcolm [Wed, 7 Aug 2013 01:25:22 +0000 (01:25 +0000)]
plugin-support.exp (plugin-test-execute): Add -fno-rtti to optstr when building plugins on darwin.
2013-08-07 David Malcolm <dmalcolm@redhat.com>
* lib/plugin-support.exp (plugin-test-execute): Add -fno-rtti
to optstr when building plugins on darwin.
From-SVN: r201552
Jason Merrill [Wed, 7 Aug 2013 01:17:36 +0000 (21:17 -0400)]
re PR c++/57825 (Template specialization for ref qualified member pointers)
PR c++/57825
* tree.c (strip_typedefs) [METHOD_TYPE]: Preserve ref-qualifier.
From-SVN: r201550
David Malcolm [Wed, 7 Aug 2013 01:14:39 +0000 (01:14 +0000)]
coretypes.h (rtl_opt_pass): Add.
2013-08-07 David Malcolm <dmalcolm@redhat.com>
* coretypes.h (rtl_opt_pass): Add.
(gcc::context): Add.
* config/epiphany/epiphany.c (pass_mode_switch_use): New.
(epiphany_init): Port to new C++ pass API.
(epiphany_optimize_mode_switching): Likewise.
* pass_manager.h (pass_manager::get_pass_split_all_insns): New.
(pass_manager::get_pass_mode_switching): New.
(pass_manager::get_pass_peephole2): New.
* mode-switching.c (pass_mode_switching): Add clone method.
* recog.c (pass_peephole2): Add clone method.
(pass_split_all_insns): Add clone method.
From-SVN: r201549
GCC Administrator [Wed, 7 Aug 2013 00:16:37 +0000 (00:16 +0000)]
Daily bump.
From-SVN: r201548
David Malcolm [Tue, 6 Aug 2013 18:51:43 +0000 (18:51 +0000)]
mips.c (insert_pass_mips_machine_reorg2): Move into...
2013-08-06 David Malcolm <dmalcolm@redhat.com>
* config/mips/mips.c (insert_pass_mips_machine_reorg2): Move
into...
(mips_option_override): ...here, porting to new C++ API for
passes.
From-SVN: r201542
Martin Jambor [Tue, 6 Aug 2013 18:00:36 +0000 (20:00 +0200)]
re PR tree-optimization/57539 (ice in ipa_edge_duplication_hook)
2013-08-06 Martin Jambor <mjambor@suse.cz>
testsuite/
PR tree-optimization/57539
* gcc.dg/ipa/pr57539.c: New test.
From-SVN: r201540
Martin Jambor [Tue, 6 Aug 2013 17:33:59 +0000 (19:33 +0200)]
pr58041.c (foo): Accept z by reference.
2013-08-06 Martin Jambor <mjambor@suse.cz>
Bernd Edlinger <bernd.edlinger@hotmail.de>
testsuite/
* gcc.dg/torture/pr58041.c (foo): Accept z by reference.
(a): Fix constructor.
Co-Authored-By: Bernd Edlinger <bernd.edlinger@hotmail.de>
From-SVN: r201538
Jan Hubicka [Tue, 6 Aug 2013 16:59:49 +0000 (18:59 +0200)]
cgraph.c (cgraph_get_body): New function based on lto.c implementation.
* cgraph.c (cgraph_get_body): New function based on lto.c
implementation.
* cgraph.h (cgraph_get_body): Declare.
* cgraphclones.c (cgraph_create_virtual_clone): Commonize WPA and LTO paths.
* cgraphunit.c (expand_function): Get body prior expanding.
* ipa.c (function_and_variable_visibility): Use gimple_has_body_p test.
* lto-cgraph.c (lto_output_node): Do not stream bodies we don't really need.
* passes.c (do_per_function_toporder): Get body.
* tree-inline.c (expand_call_inline): Get body prior inlining it.
* tree-ssa-structalias.c (ipa_pta_execute): Get body; skip clones.
* lto.c (lto_materialize_function): Do not read body anymore.
From-SVN: r201537
Ian Lance Taylor [Tue, 6 Aug 2013 16:40:09 +0000 (16:40 +0000)]
go-gcc.cc (Gcc_backend::immutable_struct_set_init): Use compute_reloc_for_constant.
* go-gcc.cc (Gcc_backend::immutable_struct_set_init): Use
compute_reloc_for_constant.
From-SVN: r201535
Martin Jambor [Tue, 6 Aug 2013 12:48:53 +0000 (14:48 +0200)]
re PR fortran/57987 (Fortran finalizers considered extern-inline by middle-end)
2013-08-06 Martin Jambor <mjambor@suse.cz>
PR fortran/57987
* cgraphunit.c (cgraph_finalize_function): Assert that nested function
is not re-finalized. Rename second parameter to no_collect.
fortran/
* trans-decl.c (gfc_generate_function_code): Never call
cgraph_finalize_function on nested functions.
testsuite/
* gfortran.dg/pr57987.f90: New test.
From-SVN: r201526