1. 06 Apr, 2018 16 commits
    • 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
  2. 05 Apr, 2018 24 commits