1. 26 Aug, 2015 6 commits
  2. 25 Aug, 2015 24 commits
    • configure.ac: Only compile with -fPIC if the target supports it. · 7ce9cf39
      	* configure.ac: Only compile with -fPIC if the target
      	supports it.
      	* configure: Regenerate.
      
      From-SVN: r227203
      Hans-Peter Nilsson committed
    • compiler: Disallow use of unary ^ on booleans. · fd1b4939
          
          Fixes golang/go#11529.
          
          Reviewed-on: https://go-review.googlesource.com/13790
      
      From-SVN: r227201
      Ian Lance Taylor committed
    • Fix build for targets not defining EXTRA_SPECS. · de26e239
      	* gcc.c (driver::finalize): Only assign to extra_specs if
      	[EXTRA_SPECS].
      
      From-SVN: r227194
      Joseph Myers committed
    • compiler: Accept numeric literals with leading zeroes. · 387b37c1
          
          When a numeric literal with leading zeroes was seen in the parser, it
          would only be accepted if it were a valid hex or octal literal.  Any
          invalid numeric literal would be split up into multiple tokens: the
          valid hex/octal literal followed by the rest of the characters.
          Instead, when scanning a numeric literal with leading zeroes, always
          accept the number and give an appropriate error if the accepted number
          does not fit in the expected base.
          
          Fixes golang/go#11532, golang/go#11533.
          
          Reviewed-on: https://go-review.googlesource.com/13791
      
      From-SVN: r227193
      Ian Lance Taylor committed
    • compiler: Allow string slices with start index == length. · 60c47c00
          
          Avoid an off-by-one error when checking the start index of a string
          slice by allowing the start index to be the string length instead
          of the string length - 1.
          
          Fixes golang/go#11522.
          
          Reviewed-on: https://go-review.googlesource.com/13030
      
      From-SVN: r227191
      Ian Lance Taylor committed
    • re PR middle-end/67330 (ICE handling weak attributes) · c316b5e4
      	PR middle-end/67330
      	* varasm.c (declare_weak): Return after giving an error.
      
      	* c-common.c (handle_weak_attribute): Don't check whether the
      	visibility can be changed here.
      
      	* gcc.dg/weak/weak-18.c: New test.
      
      From-SVN: r227190
      Marek Polacek committed
    • re PR libstdc++/60519 (Debug mode should check comparators for irreflexivity) · 630a286a
      2015-08-24  François Dumont  <fdumont@gcc.gnu.org>
      
      	PR libstdc++/60519
      	* include/debug/formatter.h (_Debug_msg_id::__msg_irreflexive_ordering):
      	New enum entry.
      	* include/debug/functions.h (_Irreflexive_checker): New.
      	(__is_irreflexive, __is_irreflexive_pred): New.
      	* include/debug/macros.h
      	(__glibcxx_check_irreflexive, __glibcxx_check_irreflexive_pred): New
      	macros.
      	(__glibcxx_check_irreflexive2, __glibcxx_check_irreflexive_pred2): New
      	macros limited to post-C++11 mode.
      	* include/debug/debug.h
      	(__glibcxx_requires_irreflexive, __glibcxx_requires_irreflexive_pred):
      	New macros, use latter.
      	(__glibcxx_requires_irreflexive2, __glibcxx_requires_irreflexive_pred2):
      	Likewise.
      	* include/bits/stl_algo.h
      	(partial_sort_copy): Add irreflexive debug check.
      	(partial_sort_copy): Likewise.
      	(lower_bound): Likewise.
      	(upper_bound): Likewise.
      	(equal_range): Likewise.
      	(binary_search): Likewise.
      	(inplace_merge): Likewise.
      	(includes): Likewise.
      	(next_permutation): Likewise.
      	(prev_permutation): Likewise.
      	(is_sorted_until): Likewise.
      	(minmax_element): Likewise.
      	(partial_sort): Likewise.
      	(nth_element): Likewise.
      	(sort): Likewise.
      	(merge): Likewise.
      	(stable_sort): Likewise.
      	(set_union): Likewise.
      	(set_intersection): Likewise.
      	(set_difference): Likewise.
      	(set_symmetric_difference): Likewise.
      	(min_element): Likewise.
      	(max_element): Likewise.
      	* include/bits/stl_algobase.h
      	(lower_bound): Likewise.
      	(lexicographical_compare): Likewise.
      	* include/bits/stl_heap.h
      	(push_heap): Likewise.
      	(pop_heap): Likewise.
      	(make_heap): Likewise.
      	(sort_heap): Likewise.
      	(is_heap_until): Likewise.
      	* testsuite/25_algorithms/lexicographical_compare/debug/
      	irreflexive_neg.cc: New.
      	* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: New.
      	* testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
      	New.
      
      From-SVN: r227189
      François Dumont committed
    • Support embedding the driver in-process within libgccjit · 9376dd63
      gcc/ChangeLog:
      	* gcc-main.c (main): Add params to driver ctor.
      	* gcc.c (class env_manager): New.
      	(env): New global.
      	(env_manager::init): New.
      	(env_manager::get): New.
      	(env_manager::xput): New.
      	(env_manager::restore): New.
      	Poison getenv and putenv.
      	(DEFAULT_TARGET_SYSTEM_ROOT): New.
      	(target_system_root): Update initialization to use
      	DEFAULT_TARGET_SYSTEM_ROOT.
      	(struct spec_list): Add field "default_ptr".
      	(INIT_STATIC_SPEC): Initialize new field "default_ptr".
      	(init_spec): Likewise.
      	(set_spec): Clear field "default_ptr".
      	(read_specs): Free "spec" and "buffer".
      	(xputenv): Reimplement in terms of env_manager.
      	(process_command): Replace ::getenv calls with calls to the
      	env_manager singleton.
      	(process_brace_body): Free string in three places.
      	(driver::driver): New.
      	(driver::~driver): New.
      	(used_arg): Convert from a function to...
      	(class used_arg_t): ...this class, and...
      	(used_arg): ...this new global instance.
      	(used_arg_t::finalize): New function.
      	(getenv_spec_function): Add "const" to local "value".  Replace
      	::getenv call with call to the env_manager singleton.
      	(path_prefix_reset): New function.
      	(driver::finalize): New function.
      	* gcc.h (driver::driver): New.
      	(driver::~driver): New.
      	(driver::finalize): New.
      
      gcc/jit/ChangeLog:
      	* docs/cp/topics/contexts.rst
      	(gccjit::context::set_bool_use_external_driver): New.
      	* docs/internals/test-hello-world.exe.log.txt: Update.
      	* docs/topics/compatibility.rst (LIBGCCJIT_ABI_5): New.
      	* docs/topics/contexts.rst
      	(gcc_jit_context_set_bool_use_external_driver): New.
      	* jit-common.h (enum inner_bool_option): Add
      	INNER_BOOL_OPTION_USE_EXTERNAL_DRIVER.
      	* jit-playback.c (gcc_driver_name): New global.
      	(gcc:jit::playback::context::invoke_driver): Split out second
      	half into...
      	(gcc::jit::playback::context::invoke_embedded_driver): ...this new
      	function, and...
      	(gcc::jit::playback::context::invoke_external_driver): ...this new
      	function.
      	* jit-playback.h
      	(gcc::jit::playback::context::get_inner_bool_option): New.
      	(gcc::jit::playback::context::invoke_embedded_driver): New.
      	(gcc::jit::playback::context::invoke_external_driver): New.
      	* jit-recording.c (inner_bool_option_reproducer_strings):
      	Add entry for INNER_BOOL_OPTION_USE_EXTERNAL_DRIVER.
      	* libgccjit++.h
      	(gccjit::context::set_bool_use_external_driver): New.
      	* libgccjit.c (gcc_jit_context_set_bool_use_external_driver): New.
      	* libgccjit.h (gcc_jit_context_set_bool_use_external_driver): New.
      	(LIBGCCJIT_HAVE_gcc_jit_context_set_bool_use_external_driver):
      	New.
      	* libgccjit.map (LIBGCCJIT_ABI_5): New.
      	* notes.txt: Show invocation of embedded copy of driver.
      	* docs/internals/test-hello-world.exe.log.txt: Update
      
      gcc/testsuite/ChangeLog:
      	* jit.dg/test-error-pr63969-missing-driver.c: Add call to
      	gcc_jit_context_set_bool_use_external_driver.
      
      From-SVN: r227188
      David Malcolm committed
    • Revert my change to commit with PR reference again. · 25c65938
      From-SVN: r227187
      François Dumont committed
    • * gcc.c-torture/execute/builtins/20010124-1.x: New. · 2f40eaca
      From-SVN: r227186
      Nathan Sidwell committed
    • optabs.c (emit_indirect_jump): Don't try an emit a jump if the target doesn't have one. · 5a08165c
      	* optabs.c (emit_indirect_jump): Don't try an emit a jump if the
      	target doesn't have one.
      
      From-SVN: r227185
      Nathan Sidwell committed
    • compiler: Don't crash on erroneous array types. · 25486c28
          
          Fixes golang/go#11546.
          
          Reviewed-on: https://go-review.googlesource.com/13795
      
      From-SVN: r227184
      Ian Lance Taylor committed
    • rs6000: Fix PR67346 · f14e0109
      "*ior<mode>_mask" is a define_insn_and_split, so it shouldn't use
      can_create_pseudo in its instruction condition, because IRA can then
      create such an instruction, and the condition becomes false before
      the insn is split.  Use a scratch instead.
      
      
      2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
      
      	PR target/67346
      	* config/rs6000/rs6000.md (*ior<mode>_mask): Use a match_scratch.
      
      From-SVN: r227183
      Segher Boessenkool committed
    • rs6000: Fix PR67344 · b733687e
      The "*and<mode>3_imm_dot_shifted" pattern is a define_insn_and_split,
      like most "dot" patterns: if its output is not assigned cr0 but some
      other cr reg, it splits to a non-dot insn and a compare.
      
      Unfortunately that non-dot insn will clobber cr0 as well.  We could
      add another clobber (with "=X,x"), but then that second alternative
      is never useful; instead, just remove that second alternative.
      
      
      2015-08-25  Segher Boessenkool  <segher@kernel.crashing.org>
      
      	PR target/67344
      	* config/rs6000/rs6000.md (*and<mode>3_imm_dot_shifted): Change to
      	a define_insn, remove second alternative.
      
      From-SVN: r227182
      Segher Boessenkool committed
    • unit.c (get_internal_unit): Make default sign mode unspecified. · 693ac2ab
      	* io/unit.c (get_internal_unit): Make default sign mode unspecified.
      	(init_units): Make default sign mode unspecified.
      
      From-SVN: r227178
      Francois-Xavier Coudert committed
    • 20001117-1.c: Needs return_address. · 0c308f59
      	* gcc.dg/20001117-1.c: Needs return_address.
      	* gcc.dg/20020415-1.c: Needs alloca.
      	* gcc.dg/graphite/id-pr44676.c: Needs profiling.
      	* gcc.dg/graphite/pr60979.c: Needs nonlocal_goto
      	* gcc.dg/pr63186.c: Needs label_values.
      	* gcc.dg/torture/pr33848.c: Likwise.
      
      	* lib/target-supports.exp (check_effective_target_fopenacc,
      	check_effective_target_fopenmp): Disable for nvptx.
      	* gcc.dg/graphite/run-id-pr47653.c: Disable for nvptx.
      	* gcc.dg/stack-usage-1.c: Likewise.
      	* gcc.dg/stack-usage-2.c: Likewise.
      	* gcc.dg/unused-5.c: Likewise.
      	* gcc.dg/unwind-1.c: Likewise.
      
      From-SVN: r227177
      Nathan Sidwell committed
    • Expand comment on struct switchstr. · db8d0919
      This patch, extracted from a larger change on gomp-4_0-branch, expands
      a comment documenting struct switchstr in gcc.c.
      
      2015-08-25  Thomas Schwinge  <thomas@codesourcery.com>
      	    Joseph Myers  <joseph@codesourcery.com>
      
      	* gcc.c (struct switchstr): Expand comment.
      
      Co-Authored-By: Joseph Myers <joseph@codesourcery.com>
      
      From-SVN: r227173
      Thomas Schwinge committed
    • nvptx.c (nvptx_write_function_decl): Reformat. · 1fe6befc
      	* config/nvptx/nvptx.c (nvptx_write_function_decl): Reformat.
      	(nvptx_reorg_subreg): Pass insn pattern to asm_operands.
      
      From-SVN: r227169
      Nathan Sidwell committed
    • re PR tree-optimization/67306 (Patterns ICEs when moved using "simplify and match") · e4cdf6a8
      2015-08-25  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/67306
      	* genmatch.c (expr::gen_transform): Verify the result of
      	builtin_decl_implicit.
      	(dt_simplify::gen_1): Likewise.
      
      From-SVN: r227163
      Richard Biener committed
    • constraints.md: Also list Cs and US ARM-specific constraints as used. · e36dbdfe
      2015-08-25  Thomas Preud'homme  <thomas.preudhomme@arm.com>
      
          * config/arm/constraints.md: Also list Cs and US ARM-specific
          constraints as used.
      
      From-SVN: r227162
      Thomas Preud'homme committed
    • gcc.dg/Wno-frame-address.c: Skip for ARM. · d5ef2c21
      g++.dg/Wno-frame-address.C: Ditto.
      
      From-SVN: r227161
      Christian Bruel committed
    • compiler: Type check params in sink function decl. · e3552bf9
          
          When a function is declared and named with the blank identifier, only
          the syntax is checked.  This patch modifies the parser to add a dummy
          node for each function declaration with a blank identifier name that
          will be type checked like any function declaration.
          
          Fixes golang/go#11535.
          
          Reviewed-on: https://go-review.googlesource.com/13792
      
      From-SVN: r227160
      Ian Lance Taylor committed
    • Daily bump. · cd0fea2b
      From-SVN: r227159
      GCC Administrator committed
  3. 24 Aug, 2015 10 commits
    • re PR target/66609 ([sh] Relative address expressions bind at as-time, even if symbol is weak) · fbce972a
      PR target/66609
      * [SH] Take into account weak symbols for pc relative calls/sibcalls.
      
      From-SVN: r227155
      Kaz Kojima committed
    • Specify the type of scop->region · 2a611178
      Changing the type of scop::region from void* to sese, as this is
      the only type assigned to scop::region for now. No functional changes intended.
      Passes regtest and bootstrap.
      
      gcc/ChangeLog:
      
      2015-08-17  Aditya Kumar  <aditya.k7@samsung.com>
      
              * graphite-poly.c: Change type of region from void* to sese.
              * graphite-poly.h (struct scop): Changing the type of scop::region
      	from void* to sese. Change accessor macro accordingly.
              * graphite-sese-to-poly.c (extract_affine_chrec): Use accessor macro.
      
      From-SVN: r227151
      Aditya Kumar committed
    • Constrain only on INTEGER_TYPE · 9ead801e
      Passes bootstrap, no regressions.
      
      With this patch gcc bootstraps with graphite.
      make BOOT_CFLAGS="-g -O2 -fgraphite-identity -floop-interchange -floop-block"
      
      gcc/ChangeLog:
      
      2015-08-12  Aditya Kumar  <hiraditya@msn.com>
      
              * graphite-scop-detection.c (stmt_simple_for_scop_p):
      	Constrain only on INTEGER_TYPE
      
      From-SVN: r227150
      Aditya Kumar committed
    • formatter.h (_Debug_msg_id::__msg_irreflexive_ordering): New enum entry. · 41e4e5ed
      2015-08-24  François Dumont  <fdumont@gcc.gnu.org>
      
      	* include/debug/formatter.h (_Debug_msg_id::__msg_irreflexive_ordering):
      	New enum entry.
      	* include/debug/functions.h (_Irreflexive_checker): New.
      	(__is_irreflexive, __is_irreflexive_pred): New.
      	* include/debug/macros.h
      	(__glibcxx_check_irreflexive, __glibcxx_check_irreflexive_pred): New
      	macros.
      	(__glibcxx_check_irreflexive2, __glibcxx_check_irreflexive_pred2): New
      	macros limited to post-C++11 mode.
      	* include/debug/debug.h
      	(__glibcxx_requires_irreflexive, __glibcxx_requires_irreflexive_pred):
      	New macros, use latter.
      	(__glibcxx_requires_irreflexive2, __glibcxx_requires_irreflexive_pred2):
      	Likewise.
      	* include/bits/stl_algo.h
      	(partial_sort_copy): Add irreflexive debug check.
      	(partial_sort_copy): Likewise.
      	(lower_bound): Likewise.
      	(upper_bound): Likewise.
      	(equal_range): Likewise.
      	(binary_search): Likewise.
      	(inplace_merge): Likewise.
      	(includes): Likewise.
      	(next_permutation): Likewise.
      	(prev_permutation): Likewise.
      	(is_sorted_until): Likewise.
      	(minmax_element): Likewise.
      	(partial_sort): Likewise.
      	(nth_element): Likewise.
      	(sort): Likewise.
      	(merge): Likewise.
      	(stable_sort): Likewise.
      	(set_union): Likewise.
      	(set_intersection): Likewise.
      	(set_difference): Likewise.
      	(set_symmetric_difference): Likewise.
      	(min_element): Likewise.
      	(max_element): Likewise.
      	* include/bits/stl_algobase.h
      	(lower_bound): Likewise.
      	(lexicographical_compare): Likewise.
      	* include/bits/stl_heap.h
      	(push_heap): Likewise.
      	(pop_heap): Likewise.
      	(make_heap): Likewise.
      	(sort_heap): Likewise.
      	(is_heap_until): Likewise.
      	* testsuite/25_algorithms/lexicographical_compare/debug/
      	irreflexive_neg.cc: New.
      	* testsuite/25_algorithms/lower_bound/debug/irreflexive.cc: New.
      	* testsuite/25_algorithms/partial_sort_copy/debug/irreflexive_neg.cc:
      	New.
      
      From-SVN: r227147
      François Dumont committed
    • configure.ac: Set have_mmap to no on spu-*-* targets. · 1b533361
      	* configure.ac: Set have_mmap to no on spu-*-* targets.
      	* configure: Regenerate.
      
      From-SVN: r227145
      Ulrich Weigand committed
    • re PR target/67211 (ICE (insn does not satisfy its constraints) on powerpc64le-linux-gnu) · 74457d00
      [gcc]
      2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/67211
      	* config/rs6000/rs6000-cpus.def (ISA_2_7_MASKS_SERVER): Set
      	-mefficient-unaligned-vsx on ISA 2.7.
      
      	* config/rs6000/rs6000.opt (-mefficient-unaligned-vsx): Convert
      	option to a masked option.
      
      	* config/rs6000/rs6000.c (rs6000_option_override_internal): Rework
      	logic for -mefficient-unaligned-vsx so that it is set via an arch
      	ISA option, instead of being set if -mtune=power8 is set. Move
      	-mefficient-unaligned-vsx and -mallow-movmisalign handling to be
      	near other default option handling.
      
      [gcc/testsuite]
      2015-08-24  Michael Meissner  <meissner@linux.vnet.ibm.com>
      
      	PR target/67211
      	* g++.dg/pr67211.C: New test.
      
      From-SVN: r227144
      Michael Meissner committed
    • genflags.c (gen_macro): Delete. · 58d745ec
      gcc/
      	* genflags.c (gen_macro): Delete.
      	(gen_proto): Don't create GEN.*CALL.* macros.
      	* gensupport.h (get_file_location): Declare.
      	* gensupport.c (rtx_locs): New variable.
      	(read_md_rtx): Record rtx locations.
      	(get_file_location): New function.
      	* target-insns.def (call, call_pop, call_value, call_value_pop)
      	(sibcall, sibcall_value): New patterns.
      	* gentarget-def.c (parse_argument): New function.
      	(def_target_insn): Use it.  Handle optional operands.  Raise an
      	error if an .md pattern has the wrong number of operands for the
      	pattern name.  Remove the names of unused operands from the prototype.
      	* builtins.c (expand_builtin_apply): Use targetm functions
      	instead of HAVE_call_value and GEN_CALL_VALUE.
      	* calls.c (emit_call_1): Likewise.  Remove support for sibcall_pop
      	and sibcall_value_pop.
      	* config/aarch64/aarch64.md (untyped_call): Use gen_call instead
      	of GEN_CALL.
      	* config/alpha/alpha.md (untyped_call): Likewise.
      	* config/iq2000/iq2000.md (untyped_call): Likewise.
      	* config/m68k/m68k.md (untyped_call): Likewise.
      	* config/mips/mips.md (untyped_call): Likewise.
      	* config/pa/pa.md (untyped_call): Likewise.
      	* config/rs6000/rs6000.md (untyped_call): Likewise.
      	* config/sparc/sparc.md (untyped_call): Likewise.
      	* config/tilegx/tilegx.md (untyped_call): Likewise.
      	* config/tilepro/tilepro.md (untyped_call): Likewise.
      	* config/visium/visium.md (untyped_call): Likewise.
      	* config/alpha/alpha.c (alpha_emit_xfloating_libcall): Use
      	gen_call_value instead of GEN_CALL_VALUE.
      	* config/arm/arm.md (untyped_call): Likewise.
      	* config/cr16/cr16.c (cr16_function_arg): Remove reference to
      	GEN_CALL.
      
      From-SVN: r227143
      Richard Sandiford committed
    • ifcvt.c (HAVE_incscc, [...]): Delete. · 651159e5
      gcc/
      	* ifcvt.c (HAVE_incscc, HAVE_decscc, HAVE_cbranchcc4): Delete.
      	(have_cbranchcc4): New variable.
      	(cc_in_cond, noce_emit_cmove, noce_get_alt_condition)
      	(noce_get_condition): Use it instead of HAVE_cbranchcc4.
      	(if_convert): Initialize have_cbranchcc4.
      
      From-SVN: r227142
      Richard Sandiford committed
    • builtins.c (expand_cmpstrn): Rename to... · 7f9f48be
      gcc/
      	* builtins.c (expand_cmpstrn): Rename to...
      	(expand_cmpstrn_or_cmpmem): ...this.
      	(expand_builtin_strcmp, expand_builtin_strncmp): Update accordingly.
      	(expand_builtin_memcmp): Use optabs instead of HAVE_cmpmem/gen_cmpmem.
      	Remove mode argument.
      	(expand_builtin): Update accordingly.
      
      From-SVN: r227141
      Richard Sandiford committed
    • builtins.c (expand_cmpstr, [...]): New functions. · a666df60
      gcc/
      	* builtins.c (expand_cmpstr, expand_cmpstrn): New functions.
      	(expand_builtin_strcmp, expand_builtin_strncmp): Use them.  Remove
      	references to HAVE_cmpstr{,n}si and CODE_FOR_cmpstr{,n}si.
      	* config/m32c/blkmov.md (cmpstrsi): Fix predicates of operands 1 and 2.
      	Add predicates for operands 0 and 3.
      	* config/rx/rx.md (cmpstrnsi): Remove force_operand for the length
      	operand.
      	* config/sh/sh.md (cmpstrnsi): Change the length predicate from
      	immediate_operand to nonmemory_operand.
      
      From-SVN: r227140
      Richard Sandiford committed