[Bug tree-optimization/83104] [8 Regression] ICE: Segmentation fault

2017-11-22 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83104

--- Comment #2 from Marc Glisse  ---
two_valued_val_range_p doesn't work on pointers, it uses vrp_val_min on the
type of the arguments. Probably:

--- vr-values.c (revision 255021)
+++ vr-values.c (working copy)
@@ -4091,7 +4091,7 @@ vr_values::simplify_stmt_using_ranges (g
 LHS = VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST) */

   if (TREE_CODE_CLASS (rhs_code) == tcc_binary
- && INTEGRAL_TYPE_P (TREE_TYPE (lhs))
+ && INTEGRAL_TYPE_P (TREE_TYPE (rhs1))
  && ((TREE_CODE (rhs1) == INTEGER_CST
   && TREE_CODE (rhs2) == SSA_NAME)
  || (TREE_CODE (rhs2) == INTEGER_CST

(or keep both tests)

[Bug bootstrap/83102] [8 Regression] go bootstrap error in ast-dump.cc due to __is_invocable failure

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83102

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-11-22
 CC||ian at gcc dot gnu.org,
   ||jakub at gcc dot gnu.org
   Target Milestone|--- |8.0
Summary|go bootstrap error in   |[8 Regression] go bootstrap
   |ast-dump.cc due to  |error in ast-dump.cc due to
   |__is_invocable failure  |__is_invocable failure
 Ever confirmed|0   |1

[Bug tree-optimization/83072] Late VRP optimization

2017-11-22 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83072

--- Comment #4 from rguenther at suse dot de  ---
On Tue, 21 Nov 2017, glisse at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83072
> 
> --- Comment #3 from Marc Glisse  ---
> (In reply to Richard Biener from comment #2)
> > The issue is that when EVRP records value-ranges that only hold temporarily
> > it doesn't update SSA_NAME_RANGE_INFO but only the internal lattice while
> > if the range is determined at the SSA definition point it also updates
> > SSA_NAME_RANGE_INFO.
> 
> Seems obvious now you've said it... And VRP1, which would have a separate
> SSA_NAME, does not generally call into match-simplify yet.
> 
> I wonder if we'll take the ugly route of making the EVRP lattice global, and
> having get_range_info use it if it isn't empty (or checking some flag) and 
> fall
> back to the current behavior otherwise. Seems simpler and cheaper than the
> alternatives I am trying to think about.

Once Jeff is settlet with his re-orgs I'm going to simply temporarily
adjust SSA_NAME_RANGE_INFO.  Should be a very simple thing do to.

[Bug bootstrap/83096] Bootstrap on darwin x86_64-apple-darwin15.6.0 (revision 254990) fails

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83096

Richard Biener  changed:

   What|Removed |Added

 CC||aldyh at gcc dot gnu.org

--- Comment #1 from Richard Biener  ---
Aldy, this is yours.

[Bug rtl-optimization/83095] [8 regression] many tests fail starting with r255001

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83095

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |8.0

[Bug libfortran/83097] Use __BYTE_ORDER__ instead of runtime test

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83097

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-11-22
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener  ---
Confirmed.

[Bug ipa/83094] ICE in ipa_modify_formal_parameters, at ipa-param-manipulation.c:105

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83094

Richard Biener  changed:

   What|Removed |Added

   Keywords||ice-on-valid-code, openmp
 CC||marxin at gcc dot gnu.org
  Component|fortran |ipa

--- Comment #2 from Richard Biener  ---
Not a regression since omp simd is new in GCC 7.2.

[Bug target/83100] [8 Regression] powerpc: internal compiler error: in get_variable_section, at varasm.c:1150 with -fdata-sections

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83100

Richard Biener  changed:

   What|Removed |Added

 Target||powerpc
  Component|c   |target
   Target Milestone|--- |8.0

[Bug libgcc/83103] Improve __mulkc3 and __divkc3 on Power9

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83103

Richard Biener  changed:

   What|Removed |Added

   Keywords||missed-optimization
 Target||powerpc64le-*-*
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-11-22
 Ever confirmed|0   |1

--- Comment #1 from Richard Biener  ---
Confirmed.

[Bug tree-optimization/83104] [8 Regression] ICE: Segmentation fault

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83104

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |8.0

--- Comment #3 from Richard Biener  ---
(In reply to Marc Glisse from comment #2)
> two_valued_val_range_p doesn't work on pointers, it uses vrp_val_min on the
> type of the arguments. Probably:
> 
> --- vr-values.c   (revision 255021)
> +++ vr-values.c   (working copy)
> @@ -4091,7 +4091,7 @@ vr_values::simplify_stmt_using_ranges (g
>LHS = VAR == VAL1 ? (VAL1 BINOP CST) : (VAL2 BINOP CST) */
>  
>if (TREE_CODE_CLASS (rhs_code) == tcc_binary
> -   && INTEGRAL_TYPE_P (TREE_TYPE (lhs))
> +   && INTEGRAL_TYPE_P (TREE_TYPE (rhs1))
> && ((TREE_CODE (rhs1) == INTEGER_CST
>  && TREE_CODE (rhs2) == SSA_NAME)
> || (TREE_CODE (rhs2) == INTEGER_CST
> 
> (or keep both tests)

and/or make two_valued_val_range_p return false for !INTEGRAL_TYPE_P

the above and/or this is pre-approved.

[Bug rtl-optimization/83095] [8 regression] many tests fail starting with r255001

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83095

Richard Biener  changed:

   What|Removed |Added

 Target|powerpc64-unknown-linux-gnu |powerpc64-unknown-linux-gnu
   ||, x86_64-*-*, i?86-*-*

--- Comment #1 from Richard Biener  ---
I'm seeing the same on x86_64 {,-m32}

[Bug tree-optimization/83089] [8 Regression] ICE: Segmentation fault (in instantiate_scev_name)

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83089

--- Comment #3 from Richard Biener  ---
Author: rguenth
Date: Wed Nov 22 08:47:47 2017
New Revision: 255044

URL: https://gcc.gnu.org/viewcvs?rev=255044&root=gcc&view=rev
Log:
2017-11-22  Richard Biener  

PR tree-optimization/83089
* tree-if-conv.c (pass_if_conversion::execute): If anything
changed reset SCEV and free the number of iteration estimates.

* gcc.dg/pr83089.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/pr83089.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-if-conv.c

[Bug tree-optimization/83089] [8 Regression] ICE: Segmentation fault (in instantiate_scev_name)

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83089

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Richard Biener  ---
Fixed.

[Bug libfortran/83070] -Wsign-compare warning in eoshift0

2017-11-22 Thread jb at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83070

--- Comment #3 from Janne Blomqvist  ---
Author: jb
Date: Wed Nov 22 08:51:21 2017
New Revision: 255045

URL: https://gcc.gnu.org/viewcvs?rev=255045&root=gcc&view=rev
Log:
PR 83070 Fix -Wsign-compare warning

2017-11-22  Janne Blomqvist  

PR libfortran/83070
* intrinsics/eoshift0.c (eoshift0): Fix -Wsign-compare warning by
making a_ex and r_ex index_type instead of size_t.

Modified:
trunk/libgfortran/ChangeLog
trunk/libgfortran/intrinsics/eoshift0.c

[Bug tree-optimization/82847] [8 regression] gcc.dg/vect/slp-perm-9.c fail

2017-11-22 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82847

--- Comment #4 from rguenther at suse dot de  ---
On Tue, 21 Nov 2017, rsandifo at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82847
> 
> rsandifo at gcc dot gnu.org  changed:
> 
>What|Removed |Added
> 
>  CC||rsandifo at gcc dot gnu.org
> 
> --- Comment #3 from rsandifo at gcc dot gnu.org  
> ---
> Isn't the problem here that vect_perm_byte and vect_perm_short don't return
> true for x86_64, even though the patterns seem to be there in sse.md?

vect_perm_byte is only available with SSEn+

The test only uses vect_perm_short though.

[Bug libfortran/83070] -Wsign-compare warning in eoshift0

2017-11-22 Thread jb at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83070

Janne Blomqvist  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #4 from Janne Blomqvist  ---
Fixed on trunk, closing.

[Bug rtl-optimization/83098] [8 regression] ICE in assert_rtx_eq_at, at selftest-rtl.c:57

2017-11-22 Thread rsandifo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83098

--- Comment #1 from rsandifo at gcc dot gnu.org  
---
This sounds like it might be an instance of what Jakub reported here: 
https://gcc.gnu.org/ml/gcc-patches/2017-11/msg01957.html

(Note: I've not committed anything during this period!)

[Bug rtl-optimization/82044] runtime signed integer overflow in check_mem_read_rtx() and all_positions_needed_p() in dse.c

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82044

--- Comment #6 from Richard Biener  ---
Author: rguenth
Date: Wed Nov 22 09:04:47 2017
New Revision: 255046

URL: https://gcc.gnu.org/viewcvs?rev=255046&root=gcc&view=rev
Log:
2017-11-22  Richard Biener  

Revert
2017-11-21  Martin Liska  

Backport from mainline
2017-11-21  Martin Liska  

PR rtl-optimization/82044
PR tree-optimization/82042
* dse.c (check_mem_read_rtx): Check for overflow.

Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/dse.c

[Bug tree-optimization/82042] signed integer overflow in ao_ref_init_from_ptr_and_size

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82042

--- Comment #7 from Richard Biener  ---
Author: rguenth
Date: Wed Nov 22 09:04:47 2017
New Revision: 255046

URL: https://gcc.gnu.org/viewcvs?rev=255046&root=gcc&view=rev
Log:
2017-11-22  Richard Biener  

Revert
2017-11-21  Martin Liska  

Backport from mainline
2017-11-21  Martin Liska  

PR rtl-optimization/82044
PR tree-optimization/82042
* dse.c (check_mem_read_rtx): Check for overflow.

Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/dse.c

[Bug tree-optimization/82042] signed integer overflow in ao_ref_init_from_ptr_and_size

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82042

--- Comment #8 from Jakub Jelinek  ---
Author: jakub
Date: Wed Nov 22 09:08:23 2017
New Revision: 255048

URL: https://gcc.gnu.org/viewcvs?rev=255048&root=gcc&view=rev
Log:
PR rtl-optimization/82044
PR tree-optimization/82042
* dse.c (record_store): Check for overflow.
(check_mem_read_rtx): Properly check for overflow if width == -1, call
add_wild_read instead of clear_rhs_from_active_local_stores on
overflow and log it into dump_file.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/dse.c

[Bug rtl-optimization/82044] runtime signed integer overflow in check_mem_read_rtx() and all_positions_needed_p() in dse.c

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82044

--- Comment #7 from Jakub Jelinek  ---
Author: jakub
Date: Wed Nov 22 09:08:23 2017
New Revision: 255048

URL: https://gcc.gnu.org/viewcvs?rev=255048&root=gcc&view=rev
Log:
PR rtl-optimization/82044
PR tree-optimization/82042
* dse.c (record_store): Check for overflow.
(check_mem_read_rtx): Properly check for overflow if width == -1, call
add_wild_read instead of clear_rhs_from_active_local_stores on
overflow and log it into dump_file.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/dse.c

[Bug rtl-optimization/81308] [8 regression] ICE in calc_dfs_tree, at dominance.c:458

2017-11-22 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81308

Markus Trippelsdorf  changed:

   What|Removed |Added

 CC||trippels at gcc dot gnu.org

--- Comment #5 from Markus Trippelsdorf  ---
Same ICE, different pattern on X86_64:

trippels@gcc67 ~ % cat PPCAsmParser.ii
struct A {
  int operator[](int) const {}
};
struct B {
  void m_fn1();
};
struct C {
  virtual bool m_fn2(int, unsigned &, A &, int &, unsigned long &, bool);
};
template  struct D {
  D(int) { MCAsmParserImpl(0, 0, 0, 0); }
};
int a;
namespace {
struct F : C {
  bool m_fn2(int, unsigned &, A &, int &, unsigned long &, bool);
  unsigned m_fn3(const A &, B &);
  F(int, int, int, int) {}
};
}
bool F::m_fn2(int, unsigned &, A &p3, int &, unsigned long &, bool) {
  B b;
  m_fn3(p3, b);
}
void fn1() { D(0); }
unsigned F::m_fn3(const A &p1, B &p2) {
  for (int *p;; p++)
switch (*p) {
case 0:
  p1[a];
case 1:
  p2.m_fn1();
}
}

trippels@gcc67 ~ % g++ -w -c -O2 PPCAsmParser.ii
during GIMPLE pass: switchconv
PPCAsmParser.ii: In function ‘unsigned int {anonymous}::F::m_fn3(const A&,
B&)’:
PPCAsmParser.ii:34:1: internal compiler error: in calc_dfs_tree, at
dominance.c:458
 }
 ^
0x9cce37 calc_dfs_tree
../../gcc/gcc/dominance.c:458
0x9ce03d calculate_dominance_info(cdi_direction)
../../gcc/gcc/dominance.c:734
0xfdcb93 verify_ssa(bool, bool)
../../gcc/gcc/tree-ssa.c:1082
0xcc80e7 execute_function_todo
../../gcc/gcc/passes.c:2001
0xcc9012 execute_todo
../../gcc/gcc/passes.c:2048

[Bug debug/83034] [8 Regression] ice in mem_loc_descriptor, at dwarf2out.c :15669

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83034

--- Comment #2 from Jakub Jelinek  ---
Author: jakub
Date: Wed Nov 22 09:43:28 2017
New Revision: 255049

URL: https://gcc.gnu.org/viewcvs?rev=255049&root=gcc&view=rev
Log:
PR debug/83034
* dwarf2out.c (mem_loc_descriptor): Handle VEC_SERIES.

* gcc.dg/pr83034.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/pr83034.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/dwarf2out.c
trunk/gcc/testsuite/ChangeLog

[Bug middle-end/82875] [8 Regression] ICE at -Os on valid code on x86_64-linux-gnu: in find_widening_optab_handler_and_mode, at optabs-query.c:414

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82875

--- Comment #5 from Jakub Jelinek  ---
Author: jakub
Date: Wed Nov 22 09:57:28 2017
New Revision: 255050

URL: https://gcc.gnu.org/viewcvs?rev=255050&root=gcc&view=rev
Log:
PR middle-end/82875
* optabs.c (expand_doubleword_mult, expand_binop): Before calling
expand_binop with *mul_widen_optab, make sure at least one of the
operands doesn't have VOIDmode.

* gcc.dg/pr82875.c: New test.
* gcc.c-torture/compile/pr82875.c: New test.

Added:
trunk/gcc/testsuite/gcc.c-torture/compile/pr82875.c
trunk/gcc/testsuite/gcc.dg/pr82875.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/optabs.c
trunk/gcc/testsuite/ChangeLog

[Bug tree-optimization/82847] [8 regression] gcc.dg/vect/slp-perm-9.c fail

2017-11-22 Thread rsandifo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82847

--- Comment #5 from rsandifo at gcc dot gnu.org  
---
(In reply to rguent...@suse.de from comment #4)
> On Tue, 21 Nov 2017, rsandifo at gcc dot gnu.org wrote:
> 
> > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82847
> > 
> > rsandifo at gcc dot gnu.org  changed:
> > 
> >What|Removed |Added
> > 
> >  CC||rsandifo at gcc dot gnu.org
> > 
> > --- Comment #3 from rsandifo at gcc dot gnu.org  > gnu.org> ---
> > Isn't the problem here that vect_perm_byte and vect_perm_short don't return
> > true for x86_64, even though the patterns seem to be there in sse.md?
> 
> vect_perm_byte is only available with SSEn+
> 
> The test only uses vect_perm_short though.

Sure, fixing only vect_perm_short would be enough for this PR.  I just
meant that the same problem seems to apply to vect_perm_byte too.

[Bug debug/83084] [7/8 Regression] -fcompare-debug failure on ppc64le

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83084

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Wed Nov 22 10:02:19 2017
New Revision: 255051

URL: https://gcc.gnu.org/viewcvs?rev=255051&root=gcc&view=rev
Log:
PR debug/83084
* valtrack.c (propagate_for_debug_subst, propagate_for_debug): Reset
debug insns if they would contain UNSPEC_VOLATILE or volatile asm.
(dead_debug_insert_temp): Likewise, but also ignore even non-volatile
asm.

* g++.dg/opt/pr83084.C: New test.

Added:
trunk/gcc/testsuite/g++.dg/opt/pr83084.C
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/valtrack.c

[Bug debug/83034] [8 Regression] ice in mem_loc_descriptor, at dwarf2out.c :15669

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83034

Jakub Jelinek  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from Jakub Jelinek  ---
Fixed.

[Bug middle-end/82875] [8 Regression] ICE at -Os on valid code on x86_64-linux-gnu: in find_widening_optab_handler_and_mode, at optabs-query.c:414

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82875

Jakub Jelinek  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Jakub Jelinek  ---
Fixed.

[Bug debug/83084] [7 Regression] -fcompare-debug failure on ppc64le

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83084

Jakub Jelinek  changed:

   What|Removed |Added

Summary|[7/8 Regression]|[7 Regression]
   |-fcompare-debug failure on  |-fcompare-debug failure on
   |ppc64le |ppc64le

--- Comment #7 from Jakub Jelinek  ---
Fixed on the trunk so far.

[Bug tree-optimization/82847] [8 regression] gcc.dg/vect/slp-perm-9.c fail

2017-11-22 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82847

--- Comment #6 from rguenther at suse dot de  ---
On Wed, 22 Nov 2017, rsandifo at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82847
> 
> --- Comment #5 from rsandifo at gcc dot gnu.org  
> ---
> (In reply to rguent...@suse.de from comment #4)
> > On Tue, 21 Nov 2017, rsandifo at gcc dot gnu.org wrote:
> > 
> > > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82847
> > > 
> > > rsandifo at gcc dot gnu.org  changed:
> > > 
> > >What|Removed |Added
> > > 
> > >  CC||rsandifo at gcc dot 
> > > gnu.org
> > > 
> > > --- Comment #3 from rsandifo at gcc dot gnu.org  > > gnu.org> ---
> > > Isn't the problem here that vect_perm_byte and vect_perm_short don't 
> > > return
> > > true for x86_64, even though the patterns seem to be there in sse.md?
> > 
> > vect_perm_byte is only available with SSEn+
> > 
> > The test only uses vect_perm_short though.
> 
> Sure, fixing only vect_perm_short would be enough for this PR.  I just
> meant that the same problem seems to apply to vect_perm_byte too.

We mostly use the "generic" vect_perm ... or maybe we used to do that.

[Bug go/83102] [8 Regression] go bootstrap error in ast-dump.cc due to __is_invocable failure

2017-11-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83102

--- Comment #5 from Jonathan Wakely  ---
This is the fix for the Go frontend (untested, but obviously correct):

--- a/gcc/go/gofrontend/gogo.h
+++ b/gcc/go/gofrontend/gogo.h
@@ -117,7 +117,7 @@ class Import_init
 // For sorting purposes.

 struct Import_init_lt {
-  bool operator()(const Import_init* i1, const Import_init* i2)
+  bool operator()(const Import_init* i1, const Import_init* i2) const
   {
 return i1->init_name() < i2->init_name();
   }

[Bug go/83102] [8 Regression] go bootstrap error in ast-dump.cc due to __is_invocable failure

2017-11-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83102

--- Comment #6 from Jonathan Wakely  ---
Author: redi
Date: Wed Nov 22 11:06:15 2017
New Revision: 255052

URL: https://gcc.gnu.org/viewcvs?rev=255052&root=gcc&view=rev
Log:
PR go/83102 relax std::set checks for invocable comparison object

PR go/83102
* include/bits/stl_tree.h (_Rb_tree): Relax invocable checks for
comparison object pre-C++17.

Modified:
trunk/libstdc++-v3/ChangeLog
trunk/libstdc++-v3/include/bits/stl_tree.h

[Bug bootstrap/83015] [8 regression] bootstrap comparison failure on ia64

2017-11-22 Thread sch...@linux-m68k.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83015

--- Comment #14 from Andreas Schwab  ---
(In reply to Jan Hubicka from comment #11)
> I was able to bootstrap on ia64 box (terbium) shortly before the unwind
> changes went in without the bootstrap miscompare.

Your testing was invalidated by the broken inline.

[Bug target/82641] Unable to enable crc32 for a certain function with target attribute on ARM (aarch32)

2017-11-22 Thread rearnsha at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82641

Richard Earnshaw  changed:

   What|Removed |Added

   Target Milestone|--- |8.0
   Severity|normal  |enhancement

[Bug c++/68391] -Wsuggest-override does not work on Item 12 of Effective Modern C++

2017-11-22 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68391

Eric Gallager  changed:

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution|--- |INVALID

--- Comment #3 from Eric Gallager  ---
(In reply to Alexander Volkov from comment #1)
> -Wsuggest-override should not produce warnings in this case, because none of
> members of Derived override virtual functions of Base.
> 
> -Woverloaded-virtual has another meaning: "With this option, the compiler
> warns when you define a function with the same name as a virtual function,
> but with a type signature that does not match any declarations from the base
> class."

I guess since the reporter never replied, I'll close this bug based on this
reply.

[Bug c++/81930] [meta-bug] Issues with -Weffc++

2017-11-22 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81930
Bug 81930 depends on bug 68391, which changed state.

Bug 68391 Summary: -Wsuggest-override does not work on Item 12 of Effective 
Modern C++
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68391

   What|Removed |Added

 Status|WAITING |RESOLVED
 Resolution|--- |INVALID

[Bug c++/77984] Invalid warning on templated operator= with -Weffc++

2017-11-22 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77984

--- Comment #6 from Eric Gallager  ---
(In reply to Eric Gallager from comment #5) 
> (In reply to Jonathan Wakely from comment #4)
> > No, but IMHO it should be (unless somebody fixes it, see PR 16166 and PR
> > 16168 and PR 55837 and others).
> 
> I'd rather see it fixed; I might give it a try myself once I learn enough
> c++ to know what I'm doing. In the meantime I'll make a meta-bug to gather
> all the -Weffc++ bugs together.

Update: The meta-bug is now bug 81930, for reference.

[Bug rtl-optimization/83095] [8 regression] many tests fail starting with r255001

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83095

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek  ---
Retry with r255048 ?

[Bug target/83105] New: [8 regression] error: -mfloat-abi=hard: selected processor lacks an FPU

2017-11-22 Thread nsz at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83105

Bug ID: 83105
   Summary: [8 regression]  error: -mfloat-abi=hard: selected
processor lacks an FPU
   Product: gcc
   Version: 8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: nsz at gcc dot gnu.org
  Target Milestone: ---

if gcc is configured with

--with-float=hard --target=arm-linux-gnueabihf

but without --with-fpu or --with-arch setting then the
configuration succeeds but the built xgcc fails:

$ ./xgcc -B. -xc - 

[Bug bootstrap/83106] New: [8 regression] libgomp/target.c:2671:2: error: ‘strncat’ specified bound 5 equals source length [-Werror=stringop-overflow=]

2017-11-22 Thread dimhen at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83106

Bug ID: 83106
   Summary: [8 regression] libgomp/target.c:2671:2: error:
‘strncat’ specified bound 5 equals source length
[-Werror=stringop-overflow=]
   Product: gcc
   Version: 8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: bootstrap
  Assignee: unassigned at gcc dot gnu.org
  Reporter: dimhen at gmail dot com
  Target Milestone: ---

r254985 PASS
r255052 FAIL

libtool: compile:  /home/dimhen/build/gcc_current/./gcc/xgcc
-B/home/dimhen/build/gcc_current/./gcc/
-B/usr/local/gcc_current/x86_64-pc-linux-gnu/bin/
-B/usr/local/gcc_current/x86_64-pc-linux-gnu/lib/ -isystem
/usr/local/gcc_current/x86_64-pc-linux-gnu/include -isystem
/usr/local/gcc_current/x86_64-pc-linux-gnu/sys-include -DHAVE_CONFIG_H -I.
-I/home/dimhen/src/gcc_current/libgomp
-I/home/dimhen/src/gcc_current/libgomp/config/linux/x86
-I/home/dimhen/src/gcc_current/libgomp/config/linux
-I/home/dimhen/src/gcc_current/libgomp/config/posix
-I/home/dimhen/src/gcc_current/libgomp
-I/home/dimhen/src/gcc_current/libgomp/../include -Wall -Werror -pthread
-ftls-model=initial-exec -fcf-protection -mcet -g -O2 -MT target.lo -MD -MP -MF
.deps/target.Tpo -c /home/dimhen/src/gcc_current/libgomp/target.c  -fPIC -DPIC
-o .libs/target.o
/home/dimhen/src/gcc_current/libgomp/target.c: In function ‘gomp_target_init’:
/home/dimhen/src/gcc_current/libgomp/target.c:2671:2: error: ‘strncat’
specified bound 5 equals source length [-Werror=stringop-overflow=]
  strncat (plugin_name, cur, next ? next - cur : strlen (cur));
  ^~~~
cc1: all warnings being treated as errors
make[5]: *** [Makefile:659: target.lo] Error 1

$ ~/src/gcc_current/configure --prefix=/usr/local/gcc_current
--enable-checking=yes,df,fold,rtl,extra --enable-languages=c,c++,lto
--disable-multilib --enable-shared --enable-threads=posix --enable-__cxa_atexit
--disable-libunwind-exceptions --enable-gnu-unique-object
--enable-linker-build-id --with-linker-hash-style=gnu --enable-plugin
--enable-initfini-array --with-isl --enable-libmpx
--enable-offload-targets=nvptx-none --without-cuda-driver
--enable-gnu-indirect-function --with-tune=native

$ make

[Bug fortran/79072] ICE with class(*) pointer function result and character value

2017-11-22 Thread pault at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79072

--- Comment #18 from Paul Thomas  ---
Author: pault
Date: Wed Nov 22 11:37:16 2017
New Revision: 255053

URL: https://gcc.gnu.org/viewcvs?rev=255053&root=gcc&view=rev
Log:
2017-11-22  Paul Thomas  

PR fortran/79072
* trans-stmt.c (trans_associate_var): Weaken the over strong
condition for using the fake result decl.

2017-11-22  Paul Thomas  

PR fortran/79072
* gfortran.dg/class_result_6.f90: New test for comment 10 of
the PR.


Added:
trunk/gcc/testsuite/gfortran.dg/class_result_6.f90
Modified:
trunk/gcc/fortran/ChangeLog
trunk/gcc/fortran/trans-stmt.c
trunk/gcc/testsuite/ChangeLog

[Bug rtl-optimization/83098] [8 regression] ICE in assert_rtx_eq_at, at selftest-rtl.c:57

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83098

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek  ---
Yes, please retry with r255048 or later.

[Bug rtl-optimization/83098] [8 regression] ICE in assert_rtx_eq_at, at selftest-rtl.c:57

2017-11-22 Thread ro at CeBiTec dot Uni-Bielefeld.DE
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83098

--- Comment #3 from ro at CeBiTec dot Uni-Bielefeld.DE  ---
> --- Comment #2 from Jakub Jelinek  ---
> Yes, please retry with r255048 or later.

Currently running: after omitting Go for PR go/83102, I'm into make
check now.

Thanks.
Rainer

[Bug rtl-optimization/82628] [8 Regression] wrong code at -Os on x86_64-linux-gnu in the 32-bit mode

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82628

Jakub Jelinek  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org

--- Comment #19 from Jakub Jelinek  ---
Fixed.

[Bug middle-end/82556] [7/8 Regression] internal compiler error in curr_insn_transform, at lra-constraints.c:4307

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82556

Jakub Jelinek  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #9 from Jakub Jelinek  ---
Fixed.

[Bug c++/59930] template friend declarations, namespaces, and explicit instantiations don't mix

2017-11-22 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59930

Nathan Sidwell  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2017-11-22
   Assignee|unassigned at gcc dot gnu.org  |nathan at gcc dot 
gnu.org
 Ever confirmed|0   |1

[Bug tree-optimization/83044] [8 Regression] ice in contains_struct_check

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83044

--- Comment #5 from Jakub Jelinek  ---
Author: jakub
Date: Wed Nov 22 12:35:26 2017
New Revision: 255054

URL: https://gcc.gnu.org/viewcvs?rev=255054&root=gcc&view=rev
Log:
PR tree-optimization/83044
* tree-vrp.c (vrp_prop::check_array_ref): If eltsize is not
INTEGER_CST or is 0, clear up_bound{,_p1} and later ignore tests
that need the upper bound.  Subtract offset from
get_addr_base_and_unit_offset only if positive and subtract it
before division by eltsize rather than after it.

* gcc.dg/pr83044.c: New test.
* c-c++-common/Warray-bounds.c (fb): Fix up MAX value.

Added:
trunk/gcc/testsuite/gcc.dg/pr83044.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/c-c++-common/Warray-bounds.c
trunk/gcc/tree-vrp.c

[Bug tree-optimization/83044] [8 Regression] ice in contains_struct_check

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83044

Jakub Jelinek  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from Jakub Jelinek  ---
Fixed.

[Bug libgomp/83106] [8 regression] libgomp/target.c:2671:2: error: ‘strncat’ specified bound 5 equals source length [-Werror=stringop-overflow=]

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83106

Richard Biener  changed:

   What|Removed |Added

   Keywords||build, diagnostic
 CC||jakub at gcc dot gnu.org,
   ||msebor at gcc dot gnu.org
  Component|bootstrap   |libgomp
   Target Milestone|--- |8.0

[Bug target/83105] [8 regression] arm-*-*eabihf: error: -mfloat-abi=hard: selected processor lacks an FPU

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83105

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |8.0

[Bug tree-optimization/82402] [6/7/8 Regression] error: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82402

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #5 from Jakub Jelinek  ---
So shall we ignore it on them in the checking code, or make sure it is never
set?

[Bug libgomp/83106] [8 regression] libgomp/target.c:2671:2: error: ‘strncat’ specified bound 5 equals source length [-Werror=stringop-overflow=]

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83106

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2017-11-22
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Jakub Jelinek  ---
Created attachment 42678
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42678&action=edit
gcc8-pr83106.patch

I think the warning is just bogus for strncat.  Unlike strncpy, which is weird,
sometimes doesn't terminate, sometimes unnecessarily fills with zeros and the
third argument represents the size of the destination (so indeed specifying the
size based on strlen of the source might be a bug), strncat does something
different, the third argument is the max number of chars to take from the src
string; and strncat always terminates.  So, passing strlen (src) as third
argument is nothing problematic, it is just another way of specifying strcat,
or
using something strlen based is sane too (both smaller or larger).

That said, the code in target.c is ugly and relies on tree-ssa-strlen.c pass to
fix the mess up, so I'll test and commit the attached patch.

[Bug tree-optimization/82402] [6/7/8 Regression] error: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set

2017-11-22 Thread rguenther at suse dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82402

--- Comment #7 from rguenther at suse dot de  ---
On Wed, 22 Nov 2017, jakub at gcc dot gnu.org wrote:

> https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82402
> 
> Jakub Jelinek  changed:
> 
>What|Removed |Added
> 
>  CC||jakub at gcc dot gnu.org
> 
> --- Comment #5 from Jakub Jelinek  ---
> So shall we ignore it on them in the checking code, or make sure it is never
> set?

Neither.  We should fix whoever fails to set it.

Whether we want to at some point ignore it / remove it is another 
question.  Looks like the culprit is somehow the vectorizer pass
which ends up with a spurious MEM_23(ab) for me.  I guess it doesn't
really expect the loop exit to end in a call with just an abnormal
outgoing edge...

Let me have a look.

[Bug tree-optimization/82402] [6/7/8 Regression] error: SSA_NAME_OCCURS_IN_ABNORMAL_PHI should be set

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82402

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2017-11-22
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #6 from Richard Biener  ---
Mine.

[Bug c++/80711] warn on non-const accessor member functions

2017-11-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80711

Jonathan Wakely  changed:

   What|Removed |Added

   Last reconfirmed|2017-05-11 00:00:00 |2017-11-22

--- Comment #2 from Jonathan Wakely  ---
Also useful would be to warn for members that don't access any state at all:

struct indirect_cmp {
  bool operator()(const X* l, const X* r) { return *l < *r; }
};

This comparison object should have a const-qualified member function to be
usable with associative containers such as std::set (see PR 83102 for example).

[Bug c++/83107] New: -Wshift-count-overflow does not report left shift count >= width in some cases.

2017-11-22 Thread contact+gcc at clementfevrier dot fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83107

Bug ID: 83107
   Summary: -Wshift-count-overflow does not report left shift
count >= width in some cases.
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: contact+gcc at clementfevrier dot fr
  Target Milestone: ---

-Wshift-count-overflow does not report left shift count >= width in some cases.

If the result of a<= width of type
[-Wshift-count-overflow]
  auto val1 = 1<<32;
 ^~

while I would expect to have in addition:
main.cpp:4:17: warning: left shift count >= width of type
[-Wshift-count-overflow]
  auto val2 = (unsigned long int)1<<32;
^~
I tried with both gcc v5 and v8. Their respective "-save-temps" output follows

% gcc -v -save-temps -std=gnu++11 main.cpp
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/5/lto-wrapper
Target: x86_64-linux-gnu
Configured with: ../src/configure -v --with-pkgversion='Ubuntu
5.4.0-6ubuntu1~16.04.5' --with-bugurl=file:///usr/share/doc/gcc-5/README.Bugs
--enable-languages=c,ada,c++,java,go,d,fortran,objc,obj-c++ --prefix=/usr
--program-suffix=-5 --enable-shared --enable-linker-build-id
--libexecdir=/usr/lib --without-included-gettext --enable-threads=posix
--libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu
--enable-libstdcxx-debug --enable-libstdcxx-time=yes
--with-default-libstdcxx-abi=new --enable-gnu-unique-object
--disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib
--disable-browser-plugin --enable-java-awt=gtk --enable-gtk-cairo
--with-java-home=/usr/lib/jvm/java-1.5.0-gcj-5-amd64/jre --enable-java-home
--with-jvm-root-dir=/usr/lib/jvm/java-1.5.0-gcj-5-amd64
--with-jvm-jar-dir=/usr/lib/jvm-exports/java-1.5.0-gcj-5-amd64
--with-arch-directory=amd64 --with-ecj-jar=/usr/share/java/eclipse-ecj.jar
--enable-objc-gc --enable-multiarch --disable-werror --with-arch-32=i686
--with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib
--with-tune=generic --enable-checking=release --build=x86_64-linux-gnu
--host=x86_64-linux-gnu --target=x86_64-linux-gnu
Thread model: posix
gcc version 5.4.0 20160609 (Ubuntu 5.4.0-6ubuntu1~16.04.5) 
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-std=gnu++11' '-mtune=generic'
'-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/5/cc1plus -E -quiet -v -imultiarch
x86_64-linux-gnu -D_GNU_SOURCE main.cpp -mtune=generic -march=x86-64
-std=gnu++11 -fpch-preprocess -fstack-protector-strong -Wformat
-Wformat-security -o main.ii
ignoring duplicate directory "/usr/include/x86_64-linux-gnu/c++/5"
ignoring nonexistent directory "/usr/local/include/x86_64-linux-gnu"
ignoring nonexistent directory
"/usr/lib/gcc/x86_64-linux-gnu/5/../../../../x86_64-linux-gnu/include"
#include "..." search starts here:
#include <...> search starts here:
 /usr/include/c++/5
 /usr/include/x86_64-linux-gnu/c++/5
 /usr/include/c++/5/backward
 /usr/lib/gcc/x86_64-linux-gnu/5/include
 /usr/local/include
 /usr/lib/gcc/x86_64-linux-gnu/5/include-fixed
 /usr/include/x86_64-linux-gnu
 /usr/include
End of search list.
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-std=gnu++11' '-mtune=generic'
'-march=x86-64'
 /usr/lib/gcc/x86_64-linux-gnu/5/cc1plus -fpreprocessed main.ii -quiet
-dumpbase main.cpp -mtune=generic -march=x86-64 -auxbase main -std=gnu++11
-version -fstack-protector-strong -Wformat -Wformat-security -o main.s
GNU C++11 (Ubuntu 5.4.0-6ubuntu1~16.04.5) version 5.4.0 20160609
(x86_64-linux-gnu)
compiled by GNU C version 5.4.0 20160609, GMP version 6.1.0, MPFR
version 3.1.4, MPC version 1.0.3
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
GNU C++11 (Ubuntu 5.4.0-6ubuntu1~16.04.5) version 5.4.0 20160609
(x86_64-linux-gnu)
compiled by GNU C version 5.4.0 20160609, GMP version 6.1.0, MPFR
version 3.1.4, MPC version 1.0.3
GGC heuristics: --param ggc-min-expand=100 --param ggc-min-heapsize=131072
Compiler executable checksum: 86227c1230bcf689e6a1b7d559effd6b
main.cpp: In function ‘int main()’:
main.cpp:3:17: warning: left shift count >= width of type
[-Wshift-count-overflow]
  auto val1 = 1<<32;
 ^
COLLECT_GCC_OPTIONS='-v' '-save-temps' '-std=gnu++11' '-mtune=generic'
'-march=x86-64'
 as -v --64 -o main.o main.s
GNU assembler version 2.26.1 (x86_64-linux-gnu) using BFD version (GNU Binutils
for Ubuntu) 2.26.1
COMPILER_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/
LIBRARY_PATH=/usr/lib/gcc/x86_64-linux-gnu/5/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../x86_64-linux-gnu/:/usr/lib/gcc/x86_64-linux-gnu/5/../../../../lib/:/lib/x86_64-linux-gnu/:/lib/../lib/:/usr/lib/x86_64-linux-gnu/:/usr/lib/../lib/:/usr/lib/gcc/x86_64-linux-gn

[Bug c++/82410] [7/8 Regression] ICE in replace_placeholders_r

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82410

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #5 from Jakub Jelinek  ---
It is the "nor whether SUB is a CONSTRUCTOR." part of the patch that causes
this.
The PLACEHOLDER_EXPR's type is S, while the VAR_DECL passed as second argument
to replace_placeholders is a temporary with A type.
sub is:
main()::S::operator main()::A (&TARGET_EXPR )->p}>);
Don't know replace_placeholders enough to fix this myself.

[Bug c++/83045] [8 Regression] -Wreturn-type regression in C++

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83045

Jakub Jelinek  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek  ---
Fixed.

[Bug target/82713] [8 Regression] ICE in ix86_builtin_vectorization_cost, at config/i386/i386.c:44475

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82713

Jakub Jelinek  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 CC||jakub at gcc dot gnu.org
 Resolution|--- |FIXED

--- Comment #8 from Jakub Jelinek  ---
Fixed.

[Bug middle-end/82547] wide_int is not setting overflow properly for large unsigned add/subtract calculations.

2017-11-22 Thread rsandifo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82547

--- Comment #3 from rsandifo at gcc dot gnu.org  
---
Author: rsandifo
Date: Wed Nov 22 13:58:57 2017
New Revision: 255059

URL: https://gcc.gnu.org/viewcvs?rev=255059&root=gcc&view=rev
Log:
PR82547: Undetected overflow for UNSIGNED wide_ints

wi::add_large and wi::sub_large weren't setting the overflow bit
correctly for unsigned operations if the result needed fewer HWIs
than the precision.

2017-11-22  Richard Sandiford  

gcc/
PR middle-end/82547
* wide-int.cc (wi::add_large, wi::sub_large): Fix overflow detection
for unsigned values with fewer HWIs than the precision.
(test_overflow): New function.
(wide_int_cc_tests): Call it.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/wide-int.cc

[Bug middle-end/83004] [8 regression] gcc.dg/vect/pr81136.c fail

2017-11-22 Thread rsandifo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83004

--- Comment #4 from rsandifo at gcc dot gnu.org  
---
Author: rsandifo
Date: Wed Nov 22 13:58:46 2017
New Revision: 255058

URL: https://gcc.gnu.org/viewcvs?rev=255058&root=gcc&view=rev
Log:
PR83004: Accidental change to pr81136.c for VECTOR_BITS==128

r254589 was supposed to leave tests unchanged for the default
VECTOR_BITS==128, but I must have got my sums wrong on pr81136.c.

2017-11-22  Richard Sandiford  

gcc/testsuite/
PR testsuite/83004
* gcc.dg/vect/pr81136.c: Restore previous alignment of 32
in the default case.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/vect/pr81136.c

[Bug middle-end/83004] [8 regression] gcc.dg/vect/pr81136.c fail

2017-11-22 Thread rsandifo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83004

rsandifo at gcc dot gnu.org  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from rsandifo at gcc dot gnu.org  
---
Patch applied.

[Bug middle-end/82547] wide_int is not setting overflow properly for large unsigned add/subtract calculations.

2017-11-22 Thread rsandifo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82547

--- Comment #4 from rsandifo at gcc dot gnu.org  
---
Patch applied to trunk.  Not sure if we want to backport or not, so leaving
open just in case.

[Bug go/83102] [8 Regression] go bootstrap error in ast-dump.cc due to __is_invocable failure

2017-11-22 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83102

--- Comment #7 from Jonathan Wakely  ---
Created attachment 42679
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42679&action=edit
Patch to make comparisons work on const objects.

Parse::Enclosing_var_comparison::operator() needs a fix too.

With this patch I can bootstrap with Go at r255051 (after that it builds
without a patch, because I relaxed the static_assert in libstdc++).

[Bug target/83100] [8 Regression] powerpc: internal compiler error: in get_variable_section, at varasm.c:1150 with -fdata-sections

2017-11-22 Thread helmut at subdivi dot de
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83100

--- Comment #2 from Helmut Grohne  ---
affects armel https://jenkins.debian.net/job/rebootstrap_armel_gcc8/2/console

[Bug rtl-optimization/63491] Ice in LRA with simple vector test case on power

2017-11-22 Thread wschmidt at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63491

Bill Schmidt  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #17 from Bill Schmidt  ---
GCC 5 has closed, so this can also.

[Bug target/82862] [8 Regression] SPEC CPU2006 465.tonto performance regression with r253975 (up to 40% drop for particular loop)

2017-11-22 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82862

--- Comment #2 from Jan Hubicka  ---
First of all, thanks a lot for reproducer!

Here are times with vectorizer enabled, disabled and no costmodel
 Performance counter stats for './a.out-vect 21 100' (10 runs):

   4588.055614  task-clock:u (msec)   #1.000 CPUs utilized 
  ( +-  0.49% )
 0  context-switches:u#0.000 K/sec
 0  cpu-migrations:u  #0.000 K/sec
88  page-faults:u #0.019 K/sec 
  ( +-  0.44% )
14,911,755,271  cycles:u  #3.250 GHz   
  ( +-  0.37% )
52,564,741,152  instructions:u#3.53  insn per cycle
  ( +-  0.00% )
 4,073,206,037  branches:u#  887.785 M/sec 
  ( +-  0.00% )
18,106,857  branch-misses:u   #0.44% of all branches   
  ( +-  0.30% )

   4.589172192 seconds time elapsed
 ( +-  0.50% )

jan@skylake:~/trunk/build/tonto> perf stat --repeat 10 ./a.out-novect 21
100

 Performance counter stats for './a.out-novect 21 100' (10 runs):

   3549.651576  task-clock:u (msec)   #1.000 CPUs utilized 
  ( +-  0.65% )
 0  context-switches:u#0.000 K/sec
 0  cpu-migrations:u  #0.000 K/sec
88  page-faults:u #0.025 K/sec 
  ( +-  0.42% )
11,563,811,687  cycles:u  #3.258 GHz   
  ( +-  0.61% )
39,259,740,624  instructions:u#3.40  insn per cycle
  ( +-  0.00% )
 3,061,205,511  branches:u#  862.396 M/sec 
  ( +-  0.00% )
11,774,836  branch-misses:u   #0.38% of all branches   
  ( +-  0.36% )

   3.550955730 seconds time elapsed
 ( +-  0.65% )

jan@skylake:~/trunk/build/tonto> perf stat --repeat 10 ./a.out-nocost 21
100

 Performance counter stats for './a.out-nocost 21 100' (10 runs):

   4621.515923  task-clock:u (msec)   #1.000 CPUs utilized 
  ( +-  0.31% )
 0  context-switches:u#0.000 K/sec
 0  cpu-migrations:u  #0.000 K/sec
87  page-faults:u #0.019 K/sec 
  ( +-  0.35% )
14,965,340,896  cycles:u  #3.238 GHz   
  ( +-  0.30% )
52,817,740,929  instructions:u#3.53  insn per cycle
  ( +-  0.00% )
 4,326,205,814  branches:u#  936.101 M/sec 
  ( +-  0.00% )
16,615,805  branch-misses:u   #0.38% of all branches   
  ( +-  0.10% )

   4.622600700 seconds time elapsed
 ( +-  0.31% )

So vectorization hurts both in time and instruction count.


There are two loops to vectorize.

  _34 = _74 + S.2_106;
  _35 = _34 * _121;
  _36 = _35 + _124;
  _38 = _36 * _37;
  _39 = (sizetype) _38;
  _40 = _72 + _39;
  _41 = MEM[(real(kind=8)[0:] *)A.14_116][S.2_106];
  *_40 = _41;
  S.2_88 = S.2_106 + 1;
  if (_77 < S.2_88)
goto ; [15.00%]
  else
goto loopback; [85.00%]

  Vector inside of loop cost: 76
  Vector prologue cost: 24
  Vector epilogue cost: 48
  Scalar iteration cost: 24
  Scalar outside cost: 24
  Vector outside cost: 72
  prologue iterations: 0
  epilogue iterations: 2
  Calculated minimum iters for profitability: 3
tonto.f90:26:0: note:   Runtime profitability threshold = 4
tonto.f90:26:0: note:   Static estimate profitability threshold = 11

and

  _18 = S.2_105 + 1;
  _19 = _18 * _61;
  _2 = _19 - _61;
  _21 = _2 * _3;
  _22 = (sizetype) _21;
  _23 = _11 + _22;
  _24 = *_23;
  _25 = _70 + S.2_105;
  _26 = _25 * _117;
  _27 = _26 + _120;
  _29 = _27 * _28;
  _30 = (sizetype) _29;
  _31 = _68 + _30;
  _32 = *_31;
  _33 = _24 * _32;
  MEM[(real(kind=8)[0:] *)A.14_116][S.2_105] = _33;
  if (_18 > _77)
goto ; [15.00%]
  else
loopback; [85.00%]


  Vector inside of loop cost: 176
  Vector prologue cost: 24
  Vector epilogue cost: 112
  Scalar iteration cost: 48
  Scalar outside cost: 24
  Vector outside cost: 136
  prologue iterations: 0
  epilogue iterations: 2
  Calculated minimum iters for profitability: 7
  Static estimate profitability threshold = 18

Both loops iterate about 9 time so the thresholds are close to being never
executed. So the slowdown seems to be just colateral damage of adding
vectorized loop for something that is not executed enough.

This is how we handle first loop:


  _34 = _74 + S.2_106; irrelevant
  _35 = _34 * _121;irrelevant
  _36 = _35 + _124;  

[Bug target/82862] [8 Regression] SPEC CPU2006 465.tonto performance regression with r253975 (up to 40% drop for particular loop)

2017-11-22 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82862

--- Comment #3 from Jan Hubicka  ---
Created attachment 42680
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42680&action=edit
Assembly produced showing register pressure issues.

[Bug go/83102] [8 Regression] go bootstrap error in ast-dump.cc due to __is_invocable failure

2017-11-22 Thread ian at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83102

--- Comment #8 from ian at gcc dot gnu.org  ---
Author: ian
Date: Wed Nov 22 15:18:43 2017
New Revision: 255062

URL: https://gcc.gnu.org/viewcvs?rev=255062&root=gcc&view=rev
Log:
compiler: make comparison operator() methods const

This is required for new versions of libstdc++ in C++17 mode.

Fixes GCC PR 83102.

Reviewed-on: https://go-review.googlesource.com/79396

Modified:
trunk/gcc/go/gofrontend/MERGE
trunk/gcc/go/gofrontend/gogo.h
trunk/gcc/go/gofrontend/parse.cc
trunk/gcc/go/gofrontend/parse.h

[Bug go/83102] [8 Regression] go bootstrap error in ast-dump.cc due to __is_invocable failure

2017-11-22 Thread ian at airs dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83102

Ian Lance Taylor  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #9 from Ian Lance Taylor  ---
Should be fixed.

[Bug c/83108] New: Unaligned 128bit dereference causes segfault with -O2 on x86-64

2017-11-22 Thread gcc-bugspam at coralbark dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83108

Bug ID: 83108
   Summary: Unaligned 128bit dereference causes segfault with -O2
on x86-64
   Product: gcc
   Version: 7.2.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: gcc-bugspam at coralbark dot net
  Target Milestone: ---

Created attachment 42681
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42681&action=edit
Preprocessed Source file

If I have a __uint128_t *unalignedPtr
Which points to an 8 byte (but not 16 byte) location then
*unalignedPtr = 0;
causes a seg fault on my x86-64 machine using:
gcc (GCC) 7.2.1 20170915 (Red Hat 7.2.1-2)

I'm attaching the example source file and the preprocessed source.

I compile with (to see the problem):
 gcc -O2 128alignchk.c -o 128alignchk

I've tried turning on individual optimisation to track down the problem but if
I compile with:
gcc -O1 -fthread-jumps -falign-functions  -falign-jumps -falign-loops 
-falign-labels -fcaller-saves -fcrossjumping -fcse-follow-jumps 
-fcse-skip-blocks -fdelete-null-pointer-checks -fdevirtualize
-fdevirtualize-speculatively -fexpensive-optimizations -fgcse  -fgcse-lm 
-fhoist-adjacent-loads -finline-small-functions -findirect-inlining -fipa-cp
-fipa-bit-cp -fipa-vrp -fipa-sra -fipa-icf
-fisolate-erroneous-paths-dereference -flra-remat -foptimize-sibling-calls
-foptimize-strlen -fpartial-inlining -fpeephole2 -freorder-blocks-algorithm=stc
-freorder-blocks-and-partition -freorder-functions -frerun-cse-after-loop 
-fsched-interblock  -fsched-spec   -fschedule-insns2 -fstore-merging
-fstrict-aliasing -ftree-builtin-call-dce -ftree-switch-conversion
-ftree-tail-merge -fcode-hoisting -ftree-pre -ftree-vrp -fipa-ra
-fstrict-overflow -fvect-cost-model=cheap 128alignchk.c -o 128alignchk

The resulting binary works fine (even though the output of -Q --help=optimizers
is the same as with -O2).

[Bug c/83108] Unaligned 128bit dereference causes segfault with -O2 on x86-64

2017-11-22 Thread gcc-bugspam at coralbark dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83108

--- Comment #1 from Jon Levell  ---
Created attachment 42682
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42682&action=edit
Plain source file

[Bug c/83108] Unaligned 128bit dereference causes segfault with -O2 on x86-64

2017-11-22 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83108

Markus Trippelsdorf  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 CC||trippels at gcc dot gnu.org
 Resolution|--- |INVALID

--- Comment #2 from Markus Trippelsdorf  ---
unsigned __int128 always needs 16 byte alignement, otherwise you are invoking
undefined behavior.

[Bug c/83108] Unaligned 128bit dereference causes segfault with -O2 on x86-64

2017-11-22 Thread gcc-bugspam at coralbark dot net
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83108

--- Comment #3 from Jon Levell  ---
I'm surprised this was closed invalid.

"While the x86 architecture originally did not require aligned memory access,
and still works without it, some SSE2 instructions on x86 CPUs do require the
data to be 128-bit (16-byte) aligned"

I'm not doing anything SSE2 related. I'm surprised this is considered undefined
behaviour?

[Bug libgomp/83106] [8 regression] libgomp/target.c:2671:2: error: ‘strncat’ specified bound 5 equals source length [-Werror=stringop-overflow=]

2017-11-22 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83106

Martin Sebor  changed:

   What|Removed |Added

 CC||mliska at suse dot cz

--- Comment #2 from Martin Sebor  ---
Martin Liska has a patch out for review to fix this warning:
https://gcc.gnu.org/ml/gcc-patches/2017-11/msg01763.html

[Bug c/83108] Unaligned 128bit dereference causes segfault with -O2 on x86-64

2017-11-22 Thread trippels at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83108

--- Comment #4 from Markus Trippelsdorf  ---
(In reply to Jon Levell from comment #3)
> I'm surprised this was closed invalid.
> 
> "While the x86 architecture originally did not require aligned memory
> access, and still works without it, some SSE2 instructions on x86 CPUs do
> require the data to be 128-bit (16-byte) aligned"
> 
> I'm not doing anything SSE2 related. I'm surprised this is considered
> undefined behaviour?

It has nothing to do with SSE2. GCC simply assumes that __uint128_t is
16byte alignmented and optimizes accordingly (clang does the same).

[Bug target/82862] [8 Regression] SPEC CPU2006 465.tonto performance regression with r253975 (up to 40% drop for particular loop)

2017-11-22 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82862

--- Comment #4 from Richard Biener  ---
I don't have any good ideas here.  Fortran with allocated arrays tends to use
quite some integer registers for all the IV setup and computation.

One can experiment with less peeling of vector epilogues (--param
max-completely-peel-times=1) as well as maybe adding another code sinking pass.
 In the end
it's intelligent remat of expressions (during RA) that needs to be done as I
fully expect not having enough integer registers to compute and keep live
everything.

There seems to be missed invariant motion on the GIMPLE side and also
stack allocation in an inner loop which we might be able to hoist.  Maybe
that (__builtin_stack_save/restore) confuses RA.

Those builtins confuse LIM at least (a present memcpy does as well, and
we expand that to a libcall).  -fno-tree-loop-distribute-patterns helps for
that.

But even then we still spill a lot.  Thus, try
-fno-tree-loop-distribute-patterns plus

Index: gcc/tree-ssa-loop-im.c
===
--- gcc/tree-ssa-loop-im.c  (revision 255051)
+++ gcc/tree-ssa-loop-im.c  (working copy)
@@ -1432,7 +1432,10 @@ gather_mem_refs_stmt (struct loop *loop,
   bool is_stored;
   unsigned id;

-  if (!gimple_vuse (stmt))
+  if (!gimple_vuse (stmt)
+  || gimple_call_builtin_p (stmt, BUILT_IN_STACK_SAVE)
+  || gimple_call_builtin_p (stmt, BUILT_IN_STACK_RESTORE)
+  || gimple_call_builtin_p (stmt, BUILT_IN_ALLOCA_WITH_ALIGN))
 return;

   mem = simple_mem_ref_in_stmt (stmt, &is_stored);

[Bug tree-optimization/83007] [8 Regression] -Wstringop-overflow false positive

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83007

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek  ---
(In reply to Martin Sebor from comment #1)
> A common mistake with strncat is to specify as the bound the source of the
> source string (instead of the remaining space in the destination), as in:

That doesn't really make sense to me.  If you know the remaining space in the
destination, that would mean also you know the length of the string in the
destination; then you should just use the known location of the '\0' as the
spot to memcpy + termination.
target.c uses strncat for a completely different purpose, which better matches
what the function does - sometimes it wants to copy the whole src string, but
sometimes just a portion of it and that is what is specified by the third
strncat argument.

[Bug libgomp/83106] [8 regression] libgomp/target.c:2671:2: error: ‘strncat’ specified bound 5 equals source length [-Werror=stringop-overflow=]

2017-11-22 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83106

--- Comment #3 from Martin Sebor  ---
The warning for strncat helps find similar bugs as for strncpy: defeating the
size constraint by specifying the length of the source rather than the amount
of space in the destination:

  strncat (d, s, strlen (s));

This is, of course, equivalent to strcat (d, s) and so an
unnecessary/unintended use of the function.  Similar recommendation as for
strncpy also applies to strncat:

  strncat (d, s, sizeof d - strlen (d) - 1);

See for example:
https://www.us-cert.gov/bsi/articles/knowledge/coding-practices/strncpy-and-strncat

The GCC code happens to be safe but there's no good way to distinguish safe but
unintended uses from unsafe ones and so the warning errs on the side of
caution.

[Bug tree-optimization/83007] [8 Regression] -Wstringop-overflow false positive

2017-11-22 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83007

Martin Sebor  changed:

   What|Removed |Added

   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=83106

--- Comment #4 from Martin Sebor  ---
The target.c use is safe but indistinguishable from the common unsafe use case:

  strncat (d, s, strlen (s));

This latter use case is what the warning is designed to help prevent.  See also
bug 83106 for some more background.

[Bug tree-optimization/66264] [untaken optimization] switch & enums without default-case

2017-11-22 Thread jamborm at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66264

Martin Jambor  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |FIXED

--- Comment #5 from Martin Jambor  ---
So I did not do it, but this is now working as requested in trunk (and I
believe also gcc 7) and switch conversion loads the value from a table.

[Bug c++/59930] template friend declarations, namespaces, and explicit instantiations don't mix

2017-11-22 Thread nathan at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59930

--- Comment #2 from Nathan Sidwell  ---
When we parse the template friend declaration, we're not injecting an invisible
template decl into the enclosing namespace.

When we instantiate the template we do an unqualified lookup (and ask for
hidden objects) from the enclosing namespace. 

In the first testcase, this fails to find anything.  Then we explicitly inject
into the global scope, as Richard surmised:
  /* The friend template has not already been declared.  In this
 case, the instantiation of the template class will cause the
 injection of this template into the global scope.  */
That just seems wrong.  Perhaps it was right at some point?

In the second testcase we perform the unqualified lookup, but find the ::B, as
it's declared at the point of the instantiation.  So we make it a friend.  Bah.

10.3.1.2/3 talks about invisible friend injection, and AFAICT doesn't prohibit
that happening during template parsing time.

[Bug libgomp/83106] [8 regression] libgomp/target.c:2671:2: error: ‘strncat’ specified bound 5 equals source length [-Werror=stringop-overflow=]

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83106

--- Comment #4 from Jakub Jelinek  ---
(In reply to Martin Sebor from comment #3)
> The warning for strncat helps find similar bugs as for strncpy: defeating
> the size constraint by specifying the length of the source rather than the
> amount of space in the destination:
> 
>   strncat (d, s, strlen (s));
> 
> This is, of course, equivalent to strcat (d, s) and so an
> unnecessary/unintended use of the function.  Similar recommendation as for
> strncpy also applies to strncat:
> 
>   strncat (d, s, sizeof d - strlen (d) - 1);
> 
> See for example:
> https://www.us-cert.gov/bsi/articles/knowledge/coding-practices/strncpy-and-
> strncat
> 
> The GCC code happens to be safe but there's no good way to distinguish safe
> but unintended uses from unsafe ones and so the warning errs on the side of
> caution.

Only if you misuse strncat for something it has not been designed for.
If you already compute strlen (d), it makes no sense to use a function that
needs to compute it again.
See e.g. https://en.wikipedia.org/wiki/C_string_handling on what it says about
these functions.  target.c uses strncat properly, trying to use it for security
purposes of not overflowing destination is typically just a bug.

[Bug c++/82401] [8 Regression] error: qsort comparator non-negative on sorted output: 1 in insert_late_enum_def_bindings on an invalid code

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82401

Jakub Jelinek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2017-11-22
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Jakub Jelinek  ---
Created attachment 42683
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=42683&action=edit
gcc8-pr82401.patch

Untested fix.

[Bug middle-end/67239] [6 Regression] FAIL: 23_containers/unordered_set/insert/hash_policy.cc execution test

2017-11-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67239

--- Comment #31 from Marek Polacek  ---
Author: mpolacek
Date: Wed Nov 22 16:06:18 2017
New Revision: 255066

URL: https://gcc.gnu.org/viewcvs?rev=255066&root=gcc&view=rev
Log:
PR c++/60336
PR middle-end/67239
PR target/68355
* c-decl.c (grokdeclarator): Set DECL_PADDING_P on unnamed bit-fields.

* class.c (layout_class_type): Set DECL_PADDING_P on padding.
* decl.c (cxx_init_decl_processing): Set TRANSLATION_UNIT_WARN_EMPTY_P.
(grokdeclarator): Set DECL_PADDING_P on unnamed bit-fields.

* lto.c (compare_tree_sccs_1): Compare TYPE_EMPTY_P and DECL_PADDING_P.

* calls.c (initialize_argument_information): Call
warn_parameter_passing_abi target hook.
(store_one_arg): Use 0 for empty record size.  Don't push 0 size
argument onto stack.
(must_pass_in_stack_var_size_or_pad): Return false for empty types.
* common.opt: Update -fabi-version description.
* config/i386/i386.c (init_cumulative_args): Set cum->warn_empty.
(ix86_gimplify_va_arg): Call arg_int_size_in_bytes instead of
int_size_in_bytes.
(ix86_is_empty_record): New function.
(ix86_warn_parameter_passing_abi): New function.
(TARGET_EMPTY_RECORD_P): Redefine.
(TARGET_WARN_PARAMETER_PASSING_ABI): Redefine.
* config/i386/i386.h (CUMULATIVE_ARGS): Add warn_empty.
* doc/tm.texi: Regenerated.
* doc/tm.texi.in (TARGET_EMPTY_RECORD_P,
TARGET_WARN_PARAMETER_PASSING_ABI): Add.
* dwarf2out.c (get_ultimate_context): Move to tree.c.
* explow.c (hard_function_value): Call arg_int_size_in_bytes
instead of int_size_in_bytes.
* expr.c (copy_blkmode_to_reg): Likewise.
* function.c (aggregate_value_p): Return 0 for empty types.
(assign_parm_find_entry_rtl): Call warn_parameter_passing_abi target
hook.
(locate_and_pad_parm): Call arg size_in_bytes instead
size_in_bytes.
* lto-streamer-out.c (hash_tree): Hash TYPE_EMPTY_P and DECL_PADDING_P.
* stor-layout.c (finalize_type_size): Set TYPE_EMPTY_P.
* target.def (empty_record_p, warn_parameter_passing_abi): New target
hooks.
* targhooks.c (hook_void_CUMULATIVE_ARGS_tree): New hook.
(std_gimplify_va_arg_expr): Skip empty records.  Call
arg_size_in_bytes instead size_in_bytes.
* targhooks.h (hook_void_CUMULATIVE_ARGS_tree): Declare.
* tree-core.h (tree_type_common): Add empty_flag.
(tree_decl_common): Update comments.
* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream
DECL_PADDING_P.
(unpack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
* tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream
DECL_PADDING_P.
(pack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
* tree.c (default_is_empty_type): New function.
(default_is_empty_record): New function.
(arg_int_size_in_bytes): New function.
(arg_size_in_bytes): New function.
(get_ultimate_context): New function.
* tree.h: Define TYPE_EMPTY_P, DECL_PADDING_P and
TRANSLATION_UNIT_WARN_EMPTY_P.
(default_is_empty_record, arg_int_size_in_bytes,
arg_size_in_bytes, get_ultimate_context): Declare.

* g++.dg/abi/empty12.C: New test.
* g++.dg/abi/empty12.h: New test.
* g++.dg/abi/empty12a.c: New test.
* g++.dg/abi/empty13.C: New test.
* g++.dg/abi/empty13.h: New test.
* g++.dg/abi/empty13a.c: New test.
* g++.dg/abi/empty14.C: New test.
* g++.dg/abi/empty14.h: New test.
* g++.dg/abi/empty14a.c: New test.
* g++.dg/abi/empty15.C: New test.
* g++.dg/abi/empty15.h: New test.
* g++.dg/abi/empty15a.c: New test.
* g++.dg/abi/empty16.C: New test.
* g++.dg/abi/empty16.h: New test.
* g++.dg/abi/empty16a.c: New test.
* g++.dg/abi/empty17.C: New test.
* g++.dg/abi/empty17.h: New test.
* g++.dg/abi/empty17a.c: New test.
* g++.dg/abi/empty18.C: New test.
* g++.dg/abi/empty18.h: New test.
* g++.dg/abi/empty18a.c: New test.
* g++.dg/abi/empty19.C: New test.
* g++.dg/abi/empty19.h: New test.
* g++.dg/abi/empty19a.c: New test.
* g++.dg/abi/empty20.C: New test.
* g++.dg/abi/empty21.C: New test.
* g++.dg/abi/empty22.C: New test.
* g++.dg/abi/empty22.h: New test.
* g++.dg/abi/empty22a.c: New test.
* g++.dg/abi/empty23.C: New test.
* g++.dg/abi/empty24.C: New test.
* g++.dg/abi/empty25.C: New test.
* g++.dg/abi/empty25.h: New test.
* g++.dg/abi/empty25a.c: New test.
* g++.dg/abi/empty26.C: New test.
* g++.dg/abi/empty26.h: New test.
* g++.dg/abi/empty26a.c: New test.
* g++.dg/abi/em

[Bug target/68355] C++ constexpr is passed on stack

2017-11-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68355

--- Comment #4 from Marek Polacek  ---
Author: mpolacek
Date: Wed Nov 22 16:06:18 2017
New Revision: 255066

URL: https://gcc.gnu.org/viewcvs?rev=255066&root=gcc&view=rev
Log:
PR c++/60336
PR middle-end/67239
PR target/68355
* c-decl.c (grokdeclarator): Set DECL_PADDING_P on unnamed bit-fields.

* class.c (layout_class_type): Set DECL_PADDING_P on padding.
* decl.c (cxx_init_decl_processing): Set TRANSLATION_UNIT_WARN_EMPTY_P.
(grokdeclarator): Set DECL_PADDING_P on unnamed bit-fields.

* lto.c (compare_tree_sccs_1): Compare TYPE_EMPTY_P and DECL_PADDING_P.

* calls.c (initialize_argument_information): Call
warn_parameter_passing_abi target hook.
(store_one_arg): Use 0 for empty record size.  Don't push 0 size
argument onto stack.
(must_pass_in_stack_var_size_or_pad): Return false for empty types.
* common.opt: Update -fabi-version description.
* config/i386/i386.c (init_cumulative_args): Set cum->warn_empty.
(ix86_gimplify_va_arg): Call arg_int_size_in_bytes instead of
int_size_in_bytes.
(ix86_is_empty_record): New function.
(ix86_warn_parameter_passing_abi): New function.
(TARGET_EMPTY_RECORD_P): Redefine.
(TARGET_WARN_PARAMETER_PASSING_ABI): Redefine.
* config/i386/i386.h (CUMULATIVE_ARGS): Add warn_empty.
* doc/tm.texi: Regenerated.
* doc/tm.texi.in (TARGET_EMPTY_RECORD_P,
TARGET_WARN_PARAMETER_PASSING_ABI): Add.
* dwarf2out.c (get_ultimate_context): Move to tree.c.
* explow.c (hard_function_value): Call arg_int_size_in_bytes
instead of int_size_in_bytes.
* expr.c (copy_blkmode_to_reg): Likewise.
* function.c (aggregate_value_p): Return 0 for empty types.
(assign_parm_find_entry_rtl): Call warn_parameter_passing_abi target
hook.
(locate_and_pad_parm): Call arg size_in_bytes instead
size_in_bytes.
* lto-streamer-out.c (hash_tree): Hash TYPE_EMPTY_P and DECL_PADDING_P.
* stor-layout.c (finalize_type_size): Set TYPE_EMPTY_P.
* target.def (empty_record_p, warn_parameter_passing_abi): New target
hooks.
* targhooks.c (hook_void_CUMULATIVE_ARGS_tree): New hook.
(std_gimplify_va_arg_expr): Skip empty records.  Call
arg_size_in_bytes instead size_in_bytes.
* targhooks.h (hook_void_CUMULATIVE_ARGS_tree): Declare.
* tree-core.h (tree_type_common): Add empty_flag.
(tree_decl_common): Update comments.
* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream
DECL_PADDING_P.
(unpack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
* tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream
DECL_PADDING_P.
(pack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
* tree.c (default_is_empty_type): New function.
(default_is_empty_record): New function.
(arg_int_size_in_bytes): New function.
(arg_size_in_bytes): New function.
(get_ultimate_context): New function.
* tree.h: Define TYPE_EMPTY_P, DECL_PADDING_P and
TRANSLATION_UNIT_WARN_EMPTY_P.
(default_is_empty_record, arg_int_size_in_bytes,
arg_size_in_bytes, get_ultimate_context): Declare.

* g++.dg/abi/empty12.C: New test.
* g++.dg/abi/empty12.h: New test.
* g++.dg/abi/empty12a.c: New test.
* g++.dg/abi/empty13.C: New test.
* g++.dg/abi/empty13.h: New test.
* g++.dg/abi/empty13a.c: New test.
* g++.dg/abi/empty14.C: New test.
* g++.dg/abi/empty14.h: New test.
* g++.dg/abi/empty14a.c: New test.
* g++.dg/abi/empty15.C: New test.
* g++.dg/abi/empty15.h: New test.
* g++.dg/abi/empty15a.c: New test.
* g++.dg/abi/empty16.C: New test.
* g++.dg/abi/empty16.h: New test.
* g++.dg/abi/empty16a.c: New test.
* g++.dg/abi/empty17.C: New test.
* g++.dg/abi/empty17.h: New test.
* g++.dg/abi/empty17a.c: New test.
* g++.dg/abi/empty18.C: New test.
* g++.dg/abi/empty18.h: New test.
* g++.dg/abi/empty18a.c: New test.
* g++.dg/abi/empty19.C: New test.
* g++.dg/abi/empty19.h: New test.
* g++.dg/abi/empty19a.c: New test.
* g++.dg/abi/empty20.C: New test.
* g++.dg/abi/empty21.C: New test.
* g++.dg/abi/empty22.C: New test.
* g++.dg/abi/empty22.h: New test.
* g++.dg/abi/empty22a.c: New test.
* g++.dg/abi/empty23.C: New test.
* g++.dg/abi/empty24.C: New test.
* g++.dg/abi/empty25.C: New test.
* g++.dg/abi/empty25.h: New test.
* g++.dg/abi/empty25a.c: New test.
* g++.dg/abi/empty26.C: New test.
* g++.dg/abi/empty26.h: New test.
* g++.dg/abi/empty26a.c: New test.
* g++.dg/abi/emp

[Bug c++/60336] empty struct value is passed differently in C and C++

2017-11-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336

--- Comment #50 from Marek Polacek  ---
Author: mpolacek
Date: Wed Nov 22 16:06:18 2017
New Revision: 255066

URL: https://gcc.gnu.org/viewcvs?rev=255066&root=gcc&view=rev
Log:
PR c++/60336
PR middle-end/67239
PR target/68355
* c-decl.c (grokdeclarator): Set DECL_PADDING_P on unnamed bit-fields.

* class.c (layout_class_type): Set DECL_PADDING_P on padding.
* decl.c (cxx_init_decl_processing): Set TRANSLATION_UNIT_WARN_EMPTY_P.
(grokdeclarator): Set DECL_PADDING_P on unnamed bit-fields.

* lto.c (compare_tree_sccs_1): Compare TYPE_EMPTY_P and DECL_PADDING_P.

* calls.c (initialize_argument_information): Call
warn_parameter_passing_abi target hook.
(store_one_arg): Use 0 for empty record size.  Don't push 0 size
argument onto stack.
(must_pass_in_stack_var_size_or_pad): Return false for empty types.
* common.opt: Update -fabi-version description.
* config/i386/i386.c (init_cumulative_args): Set cum->warn_empty.
(ix86_gimplify_va_arg): Call arg_int_size_in_bytes instead of
int_size_in_bytes.
(ix86_is_empty_record): New function.
(ix86_warn_parameter_passing_abi): New function.
(TARGET_EMPTY_RECORD_P): Redefine.
(TARGET_WARN_PARAMETER_PASSING_ABI): Redefine.
* config/i386/i386.h (CUMULATIVE_ARGS): Add warn_empty.
* doc/tm.texi: Regenerated.
* doc/tm.texi.in (TARGET_EMPTY_RECORD_P,
TARGET_WARN_PARAMETER_PASSING_ABI): Add.
* dwarf2out.c (get_ultimate_context): Move to tree.c.
* explow.c (hard_function_value): Call arg_int_size_in_bytes
instead of int_size_in_bytes.
* expr.c (copy_blkmode_to_reg): Likewise.
* function.c (aggregate_value_p): Return 0 for empty types.
(assign_parm_find_entry_rtl): Call warn_parameter_passing_abi target
hook.
(locate_and_pad_parm): Call arg size_in_bytes instead
size_in_bytes.
* lto-streamer-out.c (hash_tree): Hash TYPE_EMPTY_P and DECL_PADDING_P.
* stor-layout.c (finalize_type_size): Set TYPE_EMPTY_P.
* target.def (empty_record_p, warn_parameter_passing_abi): New target
hooks.
* targhooks.c (hook_void_CUMULATIVE_ARGS_tree): New hook.
(std_gimplify_va_arg_expr): Skip empty records.  Call
arg_size_in_bytes instead size_in_bytes.
* targhooks.h (hook_void_CUMULATIVE_ARGS_tree): Declare.
* tree-core.h (tree_type_common): Add empty_flag.
(tree_decl_common): Update comments.
* tree-streamer-in.c (unpack_ts_decl_common_value_fields): Stream
DECL_PADDING_P.
(unpack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
* tree-streamer-out.c (pack_ts_decl_common_value_fields): Stream
DECL_PADDING_P.
(pack_ts_type_common_value_fields): Stream TYPE_EMPTY_P.
* tree.c (default_is_empty_type): New function.
(default_is_empty_record): New function.
(arg_int_size_in_bytes): New function.
(arg_size_in_bytes): New function.
(get_ultimate_context): New function.
* tree.h: Define TYPE_EMPTY_P, DECL_PADDING_P and
TRANSLATION_UNIT_WARN_EMPTY_P.
(default_is_empty_record, arg_int_size_in_bytes,
arg_size_in_bytes, get_ultimate_context): Declare.

* g++.dg/abi/empty12.C: New test.
* g++.dg/abi/empty12.h: New test.
* g++.dg/abi/empty12a.c: New test.
* g++.dg/abi/empty13.C: New test.
* g++.dg/abi/empty13.h: New test.
* g++.dg/abi/empty13a.c: New test.
* g++.dg/abi/empty14.C: New test.
* g++.dg/abi/empty14.h: New test.
* g++.dg/abi/empty14a.c: New test.
* g++.dg/abi/empty15.C: New test.
* g++.dg/abi/empty15.h: New test.
* g++.dg/abi/empty15a.c: New test.
* g++.dg/abi/empty16.C: New test.
* g++.dg/abi/empty16.h: New test.
* g++.dg/abi/empty16a.c: New test.
* g++.dg/abi/empty17.C: New test.
* g++.dg/abi/empty17.h: New test.
* g++.dg/abi/empty17a.c: New test.
* g++.dg/abi/empty18.C: New test.
* g++.dg/abi/empty18.h: New test.
* g++.dg/abi/empty18a.c: New test.
* g++.dg/abi/empty19.C: New test.
* g++.dg/abi/empty19.h: New test.
* g++.dg/abi/empty19a.c: New test.
* g++.dg/abi/empty20.C: New test.
* g++.dg/abi/empty21.C: New test.
* g++.dg/abi/empty22.C: New test.
* g++.dg/abi/empty22.h: New test.
* g++.dg/abi/empty22a.c: New test.
* g++.dg/abi/empty23.C: New test.
* g++.dg/abi/empty24.C: New test.
* g++.dg/abi/empty25.C: New test.
* g++.dg/abi/empty25.h: New test.
* g++.dg/abi/empty25a.c: New test.
* g++.dg/abi/empty26.C: New test.
* g++.dg/abi/empty26.h: New test.
* g++.dg/abi/empty26a.c: New test.
* g++.dg/abi/em

[Bug c/80872] There is no warning on accidental infinite loops

2017-11-22 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80872

Eric Gallager  changed:

   What|Removed |Added

 Status|SUSPENDED   |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #2 from Eric Gallager  ---
(In reply to Eric Gallager from comment #1)
> Confirmed that such a warning would be nice to have, but probably impossible
> to implement properly due to the halting problem. Thus setting status to
> SUSPENDED.

actually this is probably a dup of bug 53871

*** This bug has been marked as a duplicate of bug 53871 ***

[Bug c++/60336] empty struct value is passed differently in C and C++

2017-11-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336

Marek Polacek  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #51 from Marek Polacek  ---
Implemented for GCC 8.

[Bug c/53871] Please warn about endless loops if they are obvious

2017-11-22 Thread egallager at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53871

Eric Gallager  changed:

   What|Removed |Added

 CC||david at westcontrol dot com

--- Comment #9 from Eric Gallager  ---
*** Bug 80872 has been marked as a duplicate of this bug. ***

[Bug target/68355] C++ constexpr is passed on stack

2017-11-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68355
Bug 68355 depends on bug 60336, which changed state.

Bug 60336 Summary: empty struct value is passed differently in C and C++
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

[Bug middle-end/67239] [6 Regression] FAIL: 23_containers/unordered_set/insert/hash_policy.cc execution test

2017-11-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67239
Bug 67239 depends on bug 60336, which changed state.

Bug 60336 Summary: empty struct value is passed differently in C and C++
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60336

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

[Bug middle-end/67239] [6 Regression] FAIL: 23_containers/unordered_set/insert/hash_policy.cc execution test

2017-11-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67239

Marek Polacek  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
 CC||mpolacek at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |mpolacek at gcc dot 
gnu.org

[Bug middle-end/67239] [6 Regression] FAIL: 23_containers/unordered_set/insert/hash_policy.cc execution test

2017-11-22 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67239

Marek Polacek  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED

--- Comment #32 from Marek Polacek  ---
Should be fixed for GCC 8.

[Bug target/83109] New: [CET] improper code generation for builtin_longjmp with -fcf-protection -mcet

2017-11-22 Thread igor.v.tsimbalist at intel dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83109

Bug ID: 83109
   Summary: [CET] improper code generation for builtin_longjmp
with -fcf-protection -mcet
   Product: gcc
   Version: 8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: target
  Assignee: unassigned at gcc dot gnu.org
  Reporter: igor.v.tsimbalist at intel dot com
  Target Milestone: ---

As inssp instruction adust the shadow stack pointer (ssp) only by value in the
range of [0..255] there should be a loop generated to adjust ssp if the value
greater then 255.

Currently builtin_longjmp does one time adjustment with incssp.

[Bug libgomp/83106] [8 regression] libgomp/target.c:2671:2: error: ‘strncat’ specified bound 5 equals source length [-Werror=stringop-overflow=]

2017-11-22 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83106

--- Comment #5 from Martin Sebor  ---
Yes, exactly.  It's these unintended uses that are a common problem and that
the warning is designed to help prevent.  They are rare in carefully written
code bases like GCC but more common in software developed by less experienced
programmers.  Often they come up as code is being updated to comply with a
security policy (e.g., replace all strcpy/strcat calls with "safe bounded
functions").  The warning tries to avoid triggering for the safe uses where it
can but there is, unfortunately, not always a good way to do that.

[Bug target/82268] [8 regression] i386/pr82196-1.c fail

2017-11-22 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82268

Jakub Jelinek  changed:

   What|Removed |Added

   Keywords|wrong-code  |
 Status|UNCONFIRMED |RESOLVED
 CC||jakub at gcc dot gnu.org
 Resolution|--- |FIXED

--- Comment #6 from Jakub Jelinek  ---
Fixed.

[Bug target/82862] [8 Regression] SPEC CPU2006 465.tonto performance regression with r253975 (up to 40% drop for particular loop)

2017-11-22 Thread hubicka at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82862

Jan Hubicka  changed:

   What|Removed |Added

 Status|ASSIGNED|NEW
 CC||amker.cheng at gmail dot com,
   ||vmakarov at redhat dot com
   Assignee|hubicka at gcc dot gnu.org |unassigned at gcc dot 
gnu.org

--- Comment #5 from Jan Hubicka  ---
Adding Vladimir and Bin to CC. Perhaps they will have some ideas.
I think stack store/restore is not too confusing for RA (it would be nice to
get rid of it completely and get frame pointer back).

[Bug middle-end/83069] [8 Regression] internal compiler error: in from_gcov_type, at profile-count.h:676

2017-11-22 Thread seurer at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83069

--- Comment #2 from seurer at gcc dot gnu.org ---
The specific revision this starts failing with is 254888.

[Bug middle-end/83069] [8 Regression] internal compiler error: in from_gcov_type, at profile-count.h:676

2017-11-22 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=83069

H.J. Lu  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-11-22
 Ever confirmed|0   |1

  1   2   >