1. 07 Apr, 2018 1 commit
  2. 06 Apr, 2018 26 commits
    • re PR middle-end/85196 (ICE in extract_insn, at recog.c:2311: unrecognizable insn) · 69128a17
      	PR target/85196
      	* config/sparc/sparc.c (sparc_expand_move): Deal with symbolic operands
      	based on LABEL_REF.  Remove useless assertion.
      	(pic_address_needs_scratch): Fix formatting.
      	(sparc_legitimize_pic_address): Minor tweaks.
      	(sparc_delegitimize_address): Adjust assertion accordingly.
      	* config/sparc/sparc.md (movsi_pic_label_ref): Change label_ref_operand
      	into symbolic_operand.
      	(movsi_high_pic_label_ref): Likewise.
      	(movsi_lo_sum_pic_label_ref): Likewise.
      	(movdi_pic_label_ref): Likewise.
      	(movdi_high_pic_label_ref): Likewise.
      	(movdi_lo_sum_pic_label_ref): Likewise.
      
      From-SVN: r259194
      Eric Botcazou committed
    • Fix ChangeLog · 5f690e68
      From-SVN: r259193
      Joel Sherrill committed
    • config.gcc (x86_64-*-rtems*): Add rtems.h to tm_file for custom LIB_SPEC setup. · 6fa08cbe
      2018-04-06  Amaan Cheval  <amaan.cheval@gmail.com>
      
      	* config.gcc (x86_64-*-rtems*): Add rtems.h to tm_file for
      	custom LIB_SPEC setup.
      
      From-SVN: r259192
      Amaan Cheval committed
    • RISC-V: Support for FreeBSD. · 4d47fe5a
      	gcc/
      	* config.gcc (riscv*-*-freebsd*): Add RISC-V FreeBSD support.
      	* config/riscv/freebsd.h: New.
      	libgcc/
      	* config.host (riscv*-*-freebsd*): Add RISC-V FreeBSD support.
      
      From-SVN: r259190
      Ruslan Bukin committed
    • re PR libfortran/85253 (asan detects heap-buffer-overflow in matmul_r4.c) · e889aa0a
      2018-04-06  Thomas Koenig  <tkoenig@gcc.gnu.org>
      
      	PR libfortran/85253
      	* m4/matmul_internal.m4: If ycount == 1, add one more row to
      	the internal buffer.
      	* generated/matmul_c10.c: Regenerated.
      	* generated/matmul_c16.c: Regenerated.
      	* generated/matmul_c4.c: Regenerated.
      	* generated/matmul_c8.c: Regenerated.
      	* generated/matmul_i1.c: Regenerated.
      	* generated/matmul_i16.c: Regenerated.
      	* generated/matmul_i2.c: Regenerated.
      	* generated/matmul_i4.c: Regenerated.
      	* generated/matmul_i8.c: Regenerated.
      	* generated/matmul_r10.c: Regenerated.
      	* generated/matmul_r16.c: Regenerated.
      	* generated/matmul_r4.c: Regenerated.
      	* generated/matmul_r8.c: Regenerated.
      	* generated/matmulavx128_c10.c: Regenerated.
      	* generated/matmulavx128_c16.c: Regenerated.
      	* generated/matmulavx128_c4.c: Regenerated.
      	* generated/matmulavx128_c8.c: Regenerated.
      	* generated/matmulavx128_i1.c: Regenerated.
      	* generated/matmulavx128_i16.c: Regenerated.
      	* generated/matmulavx128_i2.c: Regenerated.
      	* generated/matmulavx128_i4.c: Regenerated.
      	* generated/matmulavx128_i8.c: Regenerated.
      	* generated/matmulavx128_r10.c: Regenerated.
      	* generated/matmulavx128_r16.c: Regenerated.
      	* generated/matmulavx128_r4.c: Regenerated.
      	* generated/matmulavx128_r8.c: Regenerated.
      
      From-SVN: r259188
      Thomas Koenig committed
    • [NDS32] Refine ADJUST_INSN_LENGTH implementation. · a5876228
      gcc/
      	* config/nds32/nds32.c (nds32_adjust_insn_length): Refine.
      	* config/nds32/nds32.h (ADJUST_INSN_LENGTH): Change the location in
      	file.
      
      From-SVN: r259187
      Chung-Ju Wu committed
    • [NDS32] Refine call and return patterns. · f4670673
      gcc/
      	* config/nds32/nds32-md-auxiliary.c (nds32_output_return,
      	nds32_output_call, nds32_symbol_binds_local_p): New functions.
      	* config/nds32/nds32-protos.h (nds32_output_call,
      	nds32_output_return): Declare.
      	* config/nds32/nds32.md: Refine all the call and return patterns.
      
      Co-Authored-By: Kito Cheng <kito.cheng@gmail.com>
      
      From-SVN: r259186
      Chung-Ju Wu committed
    • PR c++/85214 - ICE with alias, generic lambda, constexpr if. · 96975b11
      Here, since the condition for the constexpr if depends on the type of 'j',
      it's still dependent when we are partially instantiating the inner lambda,
      so we need to defer instantiating the constexpr if.  When we instantiated
      the inner lambda, we tried to substitute into the typename, which failed
      because we didn't have a declaration of 'i' available.
      
      Fixed by teaching extract_locals_r to capture local typedefs such as 'ar';
      if we have the typedef handy, we don't need to substitute into its
      definition.
      
      	* pt.c (extract_locals_r): Remember local typedefs.
      
      From-SVN: r259185
      Jason Merrill committed
    • C++: more std header hints; filter on C++ dialect (PR c++/84269) · e1c7971b
      This patch adds more suggestions as per:
        https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84269#c10
      some of which need C++14 and C++17, and some of which use headers that
      exist in earlier standards.
      
      For example, <memory> exists in C++98, but if the user attempts to
      use std::make_shared with -std=c++98, they are suggested to include
      <memory>, even if they've already included it.
      
      This patch adds the missing names, and fixes the nonsensical suggestions
      by detecting if the name isn't available yet, based on the user's
      dialect, and reporting things more intelligently:
      
      t.cc: In function 'void test_make_shared()':
      t.cc:5:8: error: 'make_shared' is not a member of 'std'
         std::make_shared<int>();
              ^~~~~~~~~~~
      t.cc:5:8: note: 'std::make_shared' is only available from C++11 onwards
      
      gcc/cp/ChangeLog:
      	PR c++/84269
      	* name-lookup.c (struct std_name_hint): Move out of
      	get_std_name_hint; add field "min_dialect".
      	(get_std_name_hint): Add min_dialect values to all initializers.
      	Add <any>, <atomic>, <bitset>, <condition_variable>, <functional>,
      	<future>, <istream>, <iterator>, <ostream>, <mutex>, <optional>,
      	<shared_mutex>, <string_view>, <thread>, and <variant>.
      	Add fstream, ifstream, and ofstream to <fstream>.
      	Add istringstream, ostringstream, and stringstream to <sstream>.
      	Add basic_string to <string>.
      	Add tuple_element and tuple_size to <tuple>.
      	Add declval to <utility>.
      	Fix ordering of <queue> and <tuple>.
      	Return a std_name_hint, rather than a const char *.
      	(get_cxx_dialect_name): New function.
      	(maybe_suggest_missing_std_header): Detect names that aren't yet
      	available in the current dialect, and instead of suggesting a
      	missing #include, warn about the dialect.
      
      gcc/testsuite/ChangeLog:
      	PR c++/84269
      	* g++.dg/lookup/missing-std-include-6.C: Move std::array and
      	std::tuple here since they need C++11.
      	* g++.dg/lookup/missing-std-include-8.C: New test.
      	* g++.dg/lookup/missing-std-include.C: Move std::array and
      	std::tuple test to missing-std-include-6.C to avoid failures
      	with C++98.
      
      From-SVN: r259184
      David Malcolm committed
    • re PR debug/85252 (ICE with -g for static zero-length array initialization) · c617fb56
      	PR debug/85252
      	* dwarf2out.c (rtl_for_decl_init): For STRING_CST initializer only
      	build CONST_STRING if TYPE_MAX_VALUE is non-NULL and is INTEGER_CST.
      
      	* gcc.dg/debug/pr85252.c: New test.
      
      From-SVN: r259183
      Jakub Jelinek committed
    • re PR rtl-optimization/84872 (ICE in create_preheader, at cfgloopmanip.c:1536) · 49574486
      	PR rtl-optimization/84872
      	* cfgloopmanip.c (create_preheader): Use make_forwarder_block even if
      	nentry == 1 when CP_FALLTHRU_PREHEADERS and single_entry is
      	EDGE_CROSSING edge.
      
      	* gcc.dg/graphite/pr84872.c: New test.
      
      From-SVN: r259182
      Jakub Jelinek committed
    • re PR c++/85210 (ICE with broken structured binding in template) · e83bc9d7
      	PR c++/85210
      	* pt.c (tsubst_decomp_names): Return error_mark_node and assert
      	errorcount is set if tsubst doesn't return a VAR_DECL.
      
      	* g++.dg/cpp1z/decomp42.C: New test.
      
      From-SVN: r259181
      Jakub Jelinek committed
    • C++: suggest missing headers for implicit use of "std" (PR c++/85021) · cb731872
      We provide fix-it hints for the most common "std" names when an explicit
      "std::" prefix is present, however we don't yet provide fix-it hints for
      this implicit case:
      
        using namespace std;
        void f() {  cout << "test"; }
      
      for which we emit:
      
        t.cc: In function 'void f()':
        t.cc:2:13: error: 'cout' was not declared in this scope
        void f() {  cout << "test"; }
                    ^~~~
      
      This patch detects if a "using namespace std;" directive is present
      in the current namespace, and if so, offers a suggestion for
      unrecognized names that are in our list of common "std" names:
      
        t.cc: In function 'void f()':
        t.cc:2:13: error: 'cout' was not declared in this scope
         void f() {  cout << "test"; }
                     ^~~~
        t.cc:2:13: note: 'std::cout' is defined in header '<iostream>'; did you forget to '#include <iostream>'?
        +#include <iostream>
         using namespace std;
         void f() {  cout << "test"; }
                     ^~~~
      
      gcc/cp/ChangeLog:
      	PR c++/85021
      	* name-lookup.c (using_directives_contain_std_p): New function.
      	(has_using_namespace_std_directive_p): New function.
      	(suggest_alternatives_for): Simplify if/else logic using early
      	returns.  If no candidates were found, and there's a
      	"using namespace std;" directive, call
      	maybe_suggest_missing_std_header.
      	(maybe_suggest_missing_header): Split later part of the function
      	into..
      	(maybe_suggest_missing_std_header): New.
      
      gcc/testsuite/ChangeLog:
      	PR c++/85021
      	* g++.dg/lookup/missing-std-include-7.C: New test.
      
      From-SVN: r259179
      David Malcolm committed
    • PR c++/85242 - ICE with class definition in template parm. · a82f886a
      	* cp-tree.h (PROCESSING_REAL_TEMPLATE_DECL_P): False if
      	processing_template_parmlist.
      
      From-SVN: r259178
      Jason Merrill committed
    • PR c++/85240 - LTO ICE with using of undeduced auto fn. · 0c923157
      	* cp-gimplify.c (cp_genericize_r): Discard using of undeduced auto.
      
      From-SVN: r259177
      Jason Merrill committed
    • Reverted commit r254862 · d8ab9ce0
      From-SVN: r259169
      Tamar Christina committed
    • re PR tree-optimization/85244 (Bad optimisation with flexible array member (may… · ef2e5ec2
      re PR tree-optimization/85244 (Bad optimisation with flexible array member (may be related to -ftree-dominator-opts))
      
      2018-04-06  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/85244
      	* tree-dfa.c (get_ref_base_and_extent): Reset seen_variable_array_ref
      	after seeing a component reference with an adjacent field.  Treat
      	refs to arrays at struct end of external decls similar to
      	refs to unconstrained commons.
      
      	* gcc.dg/torture/pr85244-1.c: New testcase.
      	* gcc.dg/torture/pr85244-2.c: Likewise.
      
      From-SVN: r259168
      Richard Biener committed
    • re PR sanitizer/85213 (-fsanitize=undefined internal compiler error: in… · 5a98025d
      re PR sanitizer/85213 (-fsanitize=undefined internal compiler error: in fold_convert_loc, at fold-const.c:2402)
      
      	PR sanitizer/85213
      	* fold-const.c (twoval_comparison_p): Remove SAVE_P argument and don't
      	look through SAVE_EXPRs with non-side-effects argument.  Adjust
      	recursive calls.
      	(fold_comparison): Adjust twoval_comparison_p caller, don't handle
      	save_p here.
      
      	* c-c++-common/ubsan/pr85213.c: New test.
      
      From-SVN: r259167
      Jakub Jelinek committed
    • re PR rtl-optimization/85180 (Infinite loop in RTL DSE optimizer) · 6ca83833
      2018-04-06  Richard Biener  <rguenther@suse.de>
      
      	PR middle-end/85180
      	* alias.c (find_base_term): New wrapper around find_base_term
      	unwinding CSELIB_VAL_PTR changes.
      	(find_base_term): Do not restore CSELIB_VAL_PTR during the
      	recursion.
      
      	* gcc.dg/pr85180.c: New testcase.
      
      From-SVN: r259166
      Richard Biener committed
    • IBM Z: Fix vcond-shift testcase. · 54ebcca7
      gcc/testsuite/ChangeLog:
      
      2018-04-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.target/s390/vector/vcond-shift.c: Use the proper conditions
      	to trigger the optimization. Do some cleanup and function
      	renaming.  Add more test functions.
      
      From-SVN: r259165
      Andreas Krebbel committed
    • IBM Z: Use the dedicated NOP instructions for "nop" · aad98a61
      We still use lr r0,r0 as a NOP instruction although we have some kind
      of dedicated NOP instruction (nopr) which maps to a "branch never".
      
      As a side-effect this fixes testcases scanning for NOPs
      e.g. patchable_function_entry-*.
      
      As another side-effect this makes it difficult to distingiush NOPs
      generated for hotpatching from NOPs added when using -O0 to attach
      location information to it.  Hence I had to make sure that the hotpatch
      testcases get skipped when compiling without optimization.
      
      gcc/ChangeLog:
      
      2018-04-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* config/s390/s390.c (s390_z10_optimize_cmp): Expand dedicated NOP
      	instructions.
      	* config/s390/s390.md (UNSPECV_NOP_LR_0, UNSPECV_NOP_LR_1): New
      	constant definitions.
      	("nop"): lr 0,0 -> nopr r0
      	("nop_lr0", "nop_lr1"): New insn definitions.
      
      gcc/testsuite/ChangeLog:
      
      2018-04-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* gcc.target/s390/s390.exp: Remove -O0 from list of torture
      	options.
      	* gcc.target/s390/hotpatch-1.c: Skip when building without
      	optimization.
      	* gcc.target/s390/hotpatch-10.c: Likewise.
      	* gcc.target/s390/hotpatch-11.c: Likewise.
      	* gcc.target/s390/hotpatch-12.c: Likewise.
      	* gcc.target/s390/hotpatch-13.c: Likewise.
      	* gcc.target/s390/hotpatch-14.c: Likewise.
      	* gcc.target/s390/hotpatch-15.c: Likewise.
      	* gcc.target/s390/hotpatch-16.c: Likewise.
      	* gcc.target/s390/hotpatch-17.c: Likewise.
      	* gcc.target/s390/hotpatch-18.c: Likewise.
      	* gcc.target/s390/hotpatch-19.c: Likewise.
      	* gcc.target/s390/hotpatch-2.c: Likewise.
      	* gcc.target/s390/hotpatch-3.c: Likewise.
      	* gcc.target/s390/hotpatch-4.c: Likewise.
      	* gcc.target/s390/hotpatch-5.c: Likewise.
      	* gcc.target/s390/hotpatch-6.c: Likewise.
      	* gcc.target/s390/hotpatch-7.c: Likewise.
      	* gcc.target/s390/hotpatch-8.c: Likewise.
      	* gcc.target/s390/hotpatch-9.c: Likewise.
      
      From-SVN: r259164
      Andreas Krebbel committed
    • Wattributes.c testcase: Disable warning check for IBM Z. · bce89076
      On IBM Z we enforce function alignment to 8 bytes.  Hence we get an
      error instead of a warning when trying to specify smaller alignments.
      
      gcc/testsuite/ChangeLog:
      
      2018-04-06  Andreas Krebbel  <krebbel@linux.vnet.ibm.com>
      
      	* c-c++-common/Wattributes.c: Disable warning for s390* target and
      	check for an error instead.
      	* gcc.dg/Wattributes-6.c: Likewise.
      
      From-SVN: r259163
      Andreas Krebbel committed
    • [NDS32] Refine condition of stack_push and stack_pop patterns. · 9865d240
      gcc/
      	* config/nds32/nds32.md (*stack_push, *stack_pop): Use
      	NDS32_V3PUSH_AVAILABLE_P macro.
      
      From-SVN: r259162
      Chung-Ju Wu committed
    • [NDS32] Add hard float support. · e2286268
      gcc/
      	* config.gcc (nds32*-*-*): Add v2j v3f v3s checking.
      	(nds32*-*-*): Add float and fpu_config into supported_defaults.
      	* common/config/nds32/nds32-common.c (TARGET_DEFAULT_TARGET_FLAGS):
      	Include TARGET_DEFAULT_FPU_ISA and TARGET_DEFAULT_FPU_FMA.
      	* config/nds32/constants.md (unspec_element): Add UNSPEC_COPYSIGN,
      	UNSPEC_FCPYNSD, UNSPEC_FCPYNSS, UNSPEC_FCPYSD and UNSPEC_FCPYSS.
      	* config/nds32/constraints.md: New constraints and checking for hard
      	float configuration.
      	* config/nds32/iterators.md: New mode iterator and attribute for hard
      	float configuration.
      	* config/nds32/nds32-doubleword.md: Use hard float alternatives and
      	patterns.
      	* config/nds32/nds32-fpu.md: New file.
      	* config/nds32/nds32-md-auxiliary.c: New functions and checkings to
      	deal with hard float code generation.
      	* config/nds32/nds32-opts.h (nds32_arch_type): Add ARCH_V3F and
      	ARCH_V3S.
      	(abi_type, float_reg_number): New enum type.
      	* config/nds32/nds32-predicates.c: New predicates for hard float.
      	* config/nds32/nds32-protos.h: Declare functions for hard float.
      	* config/nds32/nds32.c: Implementation for hard float configuration.
      	* config/nds32/nds32.h: Definitions for hard float configuration.
      	* config/nds32/nds32.md: Include hard float machine description and
      	modify patterns for hard float configuration.
      	* config/nds32/nds32.opt: New options for hard float configuration.
      	* config/nds32/predicates.md: New predicates for hard float
      	configuration.
      
      Co-Authored-By: Chung-Ju Wu <jasonwucj@gmail.com>
      
      From-SVN: r259161
      Monk Chiang committed
    • [NDS32] Enable relax hint by default. · 58e29762
      gcc/
      	* common/config/nds32/nds32-common.c
      	(nds32_option_optimization_table): Enable -mreleax-hint by default.
      
      From-SVN: r259160
      Kuan-Lin Chen committed
    • Daily bump. · 91218427
      From-SVN: r259159
      GCC Administrator committed
  3. 05 Apr, 2018 13 commits