H.J. Lu [Wed, 18 Feb 2015 17:24:20 +0000 (17:24 +0000)]
Return false for common symbols in sdata_symbolic_operand
Although common symbols are defined in executables, they aren't in small
data section. But a definition in small data section overrides a common
symbol, which still binds lcoally, and turns a reference to common symbol
to reference to small data section. Even if ia64_in_small_data_p returns
true on common symbols, sdata_symbolic_operand must return false on common
symbols. Common symbols are assumed to be placed in small data section,
but are accessed as if they are in normal data section so that they won't
cause any relocation overflow.
PR target/65064
* config/ia64/predicates.md (sdata_symbolic_operand): Return false
for common symbols.
* ipa-devirt.c (odr_subtypes_equivalent_p): Fix formating.
(compare_virtual_tables): Be smarter about skipping typeinfos;
do sane output on virtual table table mismatch.
(warn_odr): Be ready for forward declarations of enums;
output sane info on base mismatch and virtual table mismatch.
(add_type_duplicate): Fix code choosing prevailing type; do not ICE
when only one type is polymorphic.
(get_odr_type): Fix hashtable corruption.
(dump_odr_type): Dump mangled names.
Marek Polacek [Wed, 18 Feb 2015 09:46:59 +0000 (09:46 +0000)]
re PR sanitizer/65081 (-fsanitize=object-size fails with simple pointer arithm)
PR sanitizer/65081
* ubsan.c (OBJSZ_MAX_OFFSET): Define.
(ubsan_expand_objsize_ifn): Don't emit run-time check if the offset
is in range [-16K, -1]. Don't issue run-time error if
(ptr > ptr + offset).
Thomas Schwinge [Wed, 18 Feb 2015 08:17:32 +0000 (09:17 +0100)]
nvptx mkoffload: For non-installed testing, look in all COMPILER_PATHs for GCC_INSTALL_NAME.
gcc/
* config/nvptx/mkoffload.c (parse_env_var, free_array_of_ptrs)
(access_check): New functions, copied from
config/i386/intelmic-mkoffload.c.
(main): For non-installed testing, look in all COMPILER_PATHs for
GCC_INSTALL_NAME.
Jan Hubicka [Tue, 17 Feb 2015 21:57:53 +0000 (22:57 +0100)]
ipa-visibility.c (function_and_variable_visibility): Only check locality if node is not already local.
* ipa-visibility.c (function_and_variable_visibility): Only
check locality if node is not already local.
* ipa-inline.c (want_inline_function_to_all_callers_p): Use
call_for_symbol_and_aliases instead of
call_for_symbol_thunks_and_aliases.
(ipa_inline): Likewise.
* cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
first walk aliases.
* ipa.c (symbol_table::remove_unreachable_nodes): Use
call_for_symbol_and_aliases.
* ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
(ipa_propagate_frequency_1): Use it; use opt_for_fn
(ipa_propagate_frequency): Update.
(ipa_profile): Add opt_for_fn gueards.
Jan Hubicka [Tue, 17 Feb 2015 20:58:43 +0000 (21:58 +0100)]
ipa-visibility.c (function_and_variable_visibility): Only check locality if node is not already local.
* ipa-visibility.c (function_and_variable_visibility): Only
check locality if node is not already local.
* ipa-inline.c (want_inline_function_to_all_callers_p): Use
call_for_symbol_and_aliases instead of
call_for_symbol_thunks_and_aliases.
(ipa_inline): Likewise.
* cgraph.c (cgraph_node::call_for_symbol_thunks_and_aliases):
first walk aliases.
* ipa.c (symbol_table::remove_unreachable_nodes): Use
call_for_symbol_and_aliases.
* ipa-profile.c (ipa_propagate_frequency_data): Add function_symbol.
(ipa_propagate_frequency_1): Use it; use opt_for_fn
(ipa_propagate_frequency): Update.
(ipa_profile): Add opt_for_fn guards.
libgcc/
* config/arm/bpabi.S (test_div_by_zero): Make label names
consistent between thumb2 and arm mode cases. Separate the
signed comparison on the high word of the numerator from the
unsigned comparison on the low word.
* config/arm/bpabi-v6m.S (test_div_by_zero): Similarly separate
signed comparison.
gcc/testsuite/
* gcc.target/arm/divzero.c: New test case.
James Greenhalgh [Tue, 17 Feb 2015 09:19:33 +0000 (09:19 +0000)]
[Haifa Scheduler] Fix latent bug in macro-fusion/instruction grouping
gcc/
* haifa-sched.c (recompute_todo_spec): Treat SCHED_GROUP_P
as forcing a HARD_DEP between instructions, thereby
disallowing rewriting to break dependencies.
* symtab.c (symtab_node::verify_base): Verify body_removed->!definiton
* lto-cgraph.c (lto_output_varpool_node): Do not keep definition of
variables in boundary that have no inlitalizer encoded and are
not aliases.
* varasm.c (default_binds_local_p_2): External definitions do not
count as definitions here.
Jeff Law [Mon, 16 Feb 2015 20:56:55 +0000 (13:56 -0700)]
re PR tree-optimization/64823 (false "may be used uninitialized", missed jump threading)
PR tree-optimization/64823
* tree-vrp.c (identify_jump_threads): Handle blocks with no real
statements.
* tree-ssa-threadedge.c (potentially_threadable_block): Allow
threading through blocks with PHIs, but no statements.
(thread_through_normal_block): Distinguish between blocks where
we did not process all the statements and blocks with no statements.
PR tree-optimization/64823
* gcc.dg/uninit-20.c: New test.
Alex Velenko [Mon, 16 Feb 2015 18:12:10 +0000 (18:12 +0000)]
atomic-op-consume.c (scan-assember-times): Directive adjusted to scan for ldaxr.
gcc/testsuite/
* gcc.target/aarch64/atomic-op-consume.c (scan-assember-times):
Directive adjusted to scan for ldaxr.
* gcc.target/arm/atomic-op-consume.c (scan-assember-times): Directive
adjusted to scan for ldaex.
David Edelsohn [Mon, 16 Feb 2015 15:33:09 +0000 (10:33 -0500)]
[multiple changes]
2015-02-16 Michael Haubenwallner <michael.haubenwallner@ssi-schaefer.com>
David Edelsohn <dje.gcc@gmail.com>
PR target/65058
* config/rs6000/rs6000.c (rs6000_output_symbol_ref): Append storage
mapping class to external variable or function reference.
* config/rs6000/xcoff.h (ASM_OUTPUT_EXTERNAL): Do not append storage
mapping class.
2015-02-16 David Eelsohn <dje.gcc@gmail.com>
PR target/53348
* config/rs6000/rs6000.c (rs6000_declare_alias): Only use
ASM_WEAKEN_DECL if defined.
Daniel Richard G. <skunk@iskunk.org>
PR bootstrap/48009
PR bootstrap/53348
* inclhack.def (aix_strtof_const): New fix.
* fixincl.x: Regenerate.
* tests/base/inttypes.h: New test.
Jan Hubicka [Sun, 15 Feb 2015 22:30:16 +0000 (23:30 +0100)]
cgraph.h (symtab_node::has_aliases_p): Simplify.
* cgraph.h (symtab_node::has_aliases_p): Simplify.
(symtab_node::call_for_symbol_and_aliases): Use has_aliases_p
* tree.c (lookup_binfo_at_offset): Make static.
(get_binfo_at_offset): Do not shadow offset; add explanatory
comment.
pa.c (pa_secondary_reload): Request a secondary reload for all floading point loads and stores except those...
* config/pa/pa.c (pa_secondary_reload): Request a secondary reload
for all floading point loads and stores except those using a register
index address.
* config/pa/pa.md: Add new patterns to load a lo_sum DLT operand
to a register.
Marek Polacek [Sat, 14 Feb 2015 11:25:19 +0000 (11:25 +0000)]
re PR c/64768 (internal compiler error: tree check: expected tree that contains ‘decl with RTL’ structure, have ‘field_decl’ in set_decl_rtl, at emit-rtl.c:1274)
PR c/64768
* c-decl.c (grokdeclarator): Set the range of a flexible array member
declared through a typedef name.
* gcc.dg/array-11.c: New test.
* gcc.dg/array-12.c: New test.
* gcc.dg/array-13.c: New test.
* gcc.dg/array-14.c: New test.
* gcc.dg/c99-flex-array-typedef-1.c: New test.
* gcc.dg/c99-flex-array-typedef-2.c: New test.
* gcc.dg/c99-flex-array-typedef-3.c: New test.
* gcc.dg/c99-flex-array-typedef-5.c: New test.
* gcc.dg/c99-flex-array-typedef-7.c: New test.
* gcc.dg/c99-flex-array-typedef-8.c: New test.
Jakub Jelinek [Sat, 14 Feb 2015 08:23:18 +0000 (09:23 +0100)]
re PR tree-optimization/62209 (ICE with LTO on valid code on x86_64-linux-gnu)
PR tree-optimization/62209
* tree-ssa-reassoc.c (update_range_test): If stmt is a PHI and
op == range->exp, insert seq and gimplified code after labels
instead of after the phi.
Jeff Law [Fri, 13 Feb 2015 21:09:58 +0000 (14:09 -0700)]
re PR tree-optimization/64823 (false "may be used uninitialized", missed jump threading)
PR tree-optimization/64823
* tree-vrp.c (identify_jump_threads): Handle blocks with no statements.
* tree-ssa-threadedge.c (potentially_threadable_block): Allow
threading through blocks with PHIs, but no statements.
(thread_through_normal_block): Distinguish between blocks where
we did not process all the statements and blocks with no statements.
PR tree-optimization/64823
gcc.dg/uninit-20.c: New test.
Jerry DeLisle [Fri, 13 Feb 2015 16:57:28 +0000 (16:57 +0000)]
re PR fortran/64506 (FORMAT Parse Error with Continuation Line)
2015-02-13 Jerry DeLisle <jvdelisle@gcc.gnu.org>
PR fortran/64506
* scanner.c (gfc_next_char_literal): For free form source,
check for '!' and if found, clear the comment and go back
and get the next character. For fixed form source, skip the
rest of the line.
constraints.md: Change "Q" and "T" constraints to memory constraints.
* config/pa/constraints.md: Change "Q" and "T" constraints to memory
constraints.
* config/pa/pa.c (pa_cannot_force_const_mem): Don't allow constant
symbolic references to data to be forced to constant memory on the
SOM target.
Jason Merrill [Fri, 13 Feb 2015 05:26:37 +0000 (00:26 -0500)]
re PR c++/64956 (__GXX_ABI_VERSION needs a proper definition for the 5.x releases)
PR c++/64956
* c-opts.c (c_common_post_options): Change flag_abi_version from 0
to the current highest version.
* c-cppbuiltin.c (c_cpp_builtins): Assert that it isn't 0.
H.J. Lu [Fri, 13 Feb 2015 04:52:45 +0000 (04:52 +0000)]
re PR rtl-optimization/32219 (optimizer causes wrong code in pic/hidden/weak symbol checking.)
PR rtl/32219
gcc/
* cgraphunit.c (cgraph_node::finalize_function): Set definition
before notice_global_symbol.
(varpool_node::finalize_decl): Likewise.
* varasm.c (default_binds_local_p_2): Rename from
default_binds_local_p_1, add weak_dominate argument. Use direct
returns instead of assigning to local variable. Unify varpool and
cgraph paths via symtab_node. Reject undef weak variables before
testing visibility. Reorder tests for simplicity.
(default_binds_local_p): Use default_binds_local_p_2.
(default_binds_local_p_1): Likewise.
(decl_binds_to_current_def_p): Unify varpool and cgraph paths
via symtab_node.
(default_elf_asm_output_external): Emit visibility when specified.
gcc/testsuite/
* gcc.dg/visibility-22.c: New test.
* gcc.dg/visibility-23.c: New test.
* gcc.target/i386/pr32219-1.c: New test.
* gcc.target/i386/pr32219-2.c: New test.
* gcc.target/i386/pr32219-3.c: New test.
* gcc.target/i386/pr32219-4.c: New test.
* gcc.target/i386/pr32219-5.c: New test.
* gcc.target/i386/pr32219-6.c: New test.
* gcc.target/i386/pr32219-7.c: New test.
* gcc.target/i386/pr32219-8.c: New test.
* gcc.target/i386/pr64317.c: Expect GOTOFF, not GOT.
Co-Authored-By: Richard Henderson <rth@redhat.com>
From-SVN: r220674