[Bug swing/38198] DefaultTableColumnModel.java: redundant call to new

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38198

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from David Binderman  ---
Source code gone.

[Bug gjdoc/38191] gjdoc/Main.java: dead local variable

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38191

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #1 from David Binderman  ---
Source code gone.

[Bug xml/38189] Java: set but not used local variable in tight loop

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38189

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from David Binderman  ---
Source code gone.

[Bug classpath/38192] SwingCallbackHandler.java: remove unused local variable

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38192

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from David Binderman  ---
Source code gone.

[Bug classpath/38195] ClassRmicCompiler.java: remove unused variable

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38195

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from David Binderman  ---
Source code gone.

[Bug classpath/38193] HashMap.java: unused local variable

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38193

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from David Binderman  ---
Source code gone.

[Bug swing/38194] DefaultListSelectionModel.java: remove dead for loop ?

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38194

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from David Binderman  ---
Source code gone.

[Bug classpath/38176] Java: 4 * use of toUpperCase/toLowerCase().equals()

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38176

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from David Binderman  ---
Source code gone.

[Bug classpath/38197] JobSheetsSupported.java: unused local variable

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38197

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from David Binderman  ---
Source code gone.

[Bug middle-end/78401] SciMark v2.0 Composite test runs 1,5 times slower under GCC 6.2 than under Clang 3.9

2017-07-26 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78401

Uroš Bizjak  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #2 from Uroš Bizjak  ---
Phoronix Scimark 2.0 tests were faulty [1].

[1]
https://kristerw.blogspot.si/2017/07/phoronix-scimark-benchmarking-results.html

[Bug c++/38841] valgrind finds problem for broken C++ code

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38841

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from David Binderman  ---
Seems fixed to me.

[Bug other/79703] [meta-bug] SciMark 2.0 performance issues

2017-07-26 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79703
Bug 79703 depends on bug 78401, which changed state.

Bug 78401 Summary: SciMark v2.0 Composite test runs 1,5 times slower under GCC 
6.2 than under Clang 3.9
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78401

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

[Bug middle-end/78402] SciMark v2.0 Dense LU Matrix Factorization test runs more than 2 times slower under GCC 6.2 than under Clang 3.9

2017-07-26 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78402

Uroš Bizjak  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from Uroš Bizjak  ---
Phoronix Scimark 2.0 tests were faulty [1].

[1]
https://kristerw.blogspot.si/2017/07/phoronix-scimark-benchmarking-results.html

[Bug other/79703] [meta-bug] SciMark 2.0 performance issues

2017-07-26 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79703
Bug 79703 depends on bug 78402, which changed state.

Bug 78402 Summary: SciMark v2.0  Dense LU Matrix Factorization test runs more 
than 2 times slower under GCC 6.2 than under Clang 3.9
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78402

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

[Bug middle-end/78404] SciMark v2.0 Sparse Matrix Multiply test is 20% slower under GCC 6.2 than under Clang 3.9

2017-07-26 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78404

Uroš Bizjak  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from Uroš Bizjak  ---
Phoronix Scimark 2.0 tests were faulty [1].

[1]
https://kristerw.blogspot.si/2017/07/phoronix-scimark-benchmarking-results.html

[Bug other/79703] [meta-bug] SciMark 2.0 performance issues

2017-07-26 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79703
Bug 79703 depends on bug 78403, which changed state.

Bug 78403 Summary: SciMark v2.0 Jacobi Successive Over-Relaxation test is 30% 
slower under GCC 6.2 than under Clang 3.9
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78403

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

[Bug middle-end/78403] SciMark v2.0 Jacobi Successive Over-Relaxation test is 30% slower under GCC 6.2 than under Clang 3.9

2017-07-26 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78403

Uroš Bizjak  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from Uroš Bizjak  ---
Phoronix Scimark 2.0 tests were faulty [1].

[1]
https://kristerw.blogspot.si/2017/07/phoronix-scimark-benchmarking-results.html

[Bug other/79703] [meta-bug] SciMark 2.0 performance issues

2017-07-26 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79703
Bug 79703 depends on bug 78404, which changed state.

Bug 78404 Summary: SciMark v2.0 Sparse Matrix Multiply test is 20% slower under 
GCC 6.2 than under Clang 3.9
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78404

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

[Bug other/79703] [meta-bug] SciMark 2.0 performance issues

2017-07-26 Thread ubizjak at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79703

--- Comment #2 from Uroš Bizjak  ---
Please note that Phoronix SciMark 2.0 benchmark is faulty [1].

[1]
https://kristerw.blogspot.si/2017/07/phoronix-scimark-benchmarking-results.html

[Bug tree-optimization/43424] -O2 -floop-parallelize-all causes verify_stmts failure

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=43424

David Binderman  changed:

   What|Removed |Added

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

--- Comment #3 from David Binderman  ---
Seems fixed to me.

[Bug rtl-optimization/38518] Excessive compile time with -O3

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38518

--- Comment #12 from David Binderman  ---

With recent gcc:

no -O flag: 2 seconds

-O2: 24 seconds

-O3: 247 seconds

I'll have a look at -ftime-report.

[Bug rtl-optimization/60668] simplify-rtx.c:1676: minor tidyup in if ... else chain

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=60668

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from David Binderman  ---
Code no longer seems to exist in source code file.

[Bug c/81524] Bogus or missing warnings when dereferencing pointer to deallocated stack memory

2017-07-26 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81524

--- Comment #4 from Martin Liška  ---
(In reply to Fredrik Hederstierna from comment #3)
> Isn't AddressSanitizer checking in run-time? There are several tools that
> can find this bugs in runtime I think like Valgrind, but I need to find this
> at compile-time.

Yes, it's run-time checking.

> 
> I use embedded arm-eabi target and cannot add memory for instrumentation
> with compile AddressSanitizer, or can AddressSanitizer do jobs alos in
> compile-time without adding code size for run-time instrumentation?

No, it verifies stuff just in compile time. Well I understand the arm-eabi is
not a good target for AddressSanization. Maybe you will be able to run the code
on x86_64 in a testing environment where you can catch various undefined
behavior stuff.

Please be note that AddressSanitizer is much powerful tool that a compile-time
checking, because due to multiple compilation modules or conservative
assumptions that compiler has to do, one can't find these issues in compile
time.

[Bug c/81524] Bogus or missing warnings when dereferencing pointer to deallocated stack memory

2017-07-26 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81524

--- Comment #5 from Martin Liška  ---
> No, it verifies stuff just in compile time. Well I understand the arm-eabi

Sorry, 'just in run-time'.

[Bug tree-optimization/63822] tree-chkp.c: missing init for local variable found_valid ?

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63822

David Binderman  changed:

   What|Removed |Added

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

--- Comment #2 from David Binderman  ---
Variable is now initialised at its declaration.

[Bug ipa/61145] valgrind finds problems in ipa_analyze_node

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61145

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #2 from David Binderman  ---
Problem seems to have gone away.

[Bug middle-end/66600] sign_mask meets valgrind

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66600

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #1 from David Binderman  ---
Problem seems to have gone away.

[Bug boehm-gc/66884] trunk/boehm-gc/cord/cordbscs.c:455: bad if ?

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66884

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #1 from David Binderman  ---
boehm-gc source code not in the compiler anymore.

[Bug c++/71570] [6/7/8 regression] ICE on invalid variable capture in cxx_incomplete_type_diagnostic, at cp/typeck2.c:551

2017-07-26 Thread paolo.carlini at oracle dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71570

Paolo Carlini  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |paolo.carlini at oracle 
dot com

--- Comment #8 from Paolo Carlini  ---
Seems easy, I have a patchlet in testing.

[Bug c++/49409] some possible new warnings for strange code

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=49409

David Binderman  changed:

   What|Removed |Added

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

--- Comment #8 from David Binderman  ---
Four out of five cases solved is good enough, in my view.

[Bug rtl-optimization/81559] New: [8 Regression] ICE: verify_flow_info failed (error: non-cold basic block 4 reachable only by paths crossing the cold partition) on 32-bit BE powerpc target

2017-07-26 Thread asolokha at gmx dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81559

Bug ID: 81559
   Summary: [8 Regression] ICE: verify_flow_info failed (error:
non-cold basic block 4 reachable only by paths
crossing the cold partition) on 32-bit BE powerpc
target
   Product: gcc
   Version: 8.0
Status: UNCONFIRMED
  Keywords: ice-on-valid-code
  Severity: normal
  Priority: P3
 Component: rtl-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: asolokha at gmx dot com
  Target Milestone: ---
Target: powerpc-*-linux-gnu

gcc-8.0.0-alpha20170723 snapshot ICEs when compiling the following snippet w/
-O2 (-O3, -Ofast) -freorder-blocks-and-partition:

int yj, z5;

void
tz (int ih)
{
  if (z5 == 0)
return;

  if (z5 == 1)
{
  int *ef = (int *)&ef;

  while (ef != 0)
{
 hr:
  yj /= (z5 != 0) ? 0 : *ef;
}
}

  ih = (!!ih && !!z5);
  yj /= ih;
  if (yj != 0)
{
  yj = 1;
  goto hr;
}
}

% powerpc-e300c3-linux-gnu-gcc-8.0.0-alpha20170723 -O2
-freorder-blocks-and-partition -c jwf88471.c
jwf88471.c: In function 'tz':
jwf88471.c:27:1: error: non-cold basic block 4 reachable only by paths crossing
the cold partition
 }
 ^
during RTL pass: ce3
jwf88471.c:27:1: internal compiler error: verify_flow_info failed
0x76ac45 verify_flow_info()
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20170723/work/gcc-8-20170723/gcc/cfghooks.c:259
0x13e81e4 checking_verify_flow_info
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20170723/work/gcc-8-20170723/gcc/cfghooks.h:198
0x13e81e4 if_convert
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20170723/work/gcc-8-20170723/gcc/ifcvt.c:5448
0x13e9c9c execute
   
/var/tmp/portage/cross-powerpc-e300c3-linux-gnu/gcc-8.0.0_alpha20170723/work/gcc-8-20170723/gcc/ifcvt.c:5594

This PR can be a duplicate of PR81301.

[Bug libgcc/66883] config/epiphany/udivsi3-float.c:52: bad if test ?

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66883

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #3 from David Binderman  ---
Seems fixed to me.

[Bug tree-optimization/81556] Wrong code at -O2

2017-07-26 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81556

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org

--- Comment #2 from Jakub Jelinek  ---
Started with r242075.

[Bug rtl-optimization/69084] lra-remat.c:165: dead function ?

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69084

David Binderman  changed:

   What|Removed |Added

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

--- Comment #2 from David Binderman  ---
Function seems gone to me.

[Bug middle-end/69085] gcc/emit-rtl.c:2671: dead function ?

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69085

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID

--- Comment #2 from David Binderman  ---
This function now does get called from other places.

[Bug libgcc/61152] Missing GCC Runtime Library Exception in some files that are included in libgcc

2017-07-26 Thread sh at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61152

--- Comment #8 from sh at gcc dot gnu.org ---
Author: sh
Date: Wed Jul 26 08:31:09 2017
New Revision: 250558

URL: https://gcc.gnu.org/viewcvs?rev=250558&root=gcc&view=rev
Log:
[RTEMS] Add GCC Runtime Library Exception

gcc/
PR libgcc/61152
* config/aarch64/rtems.h: Add GCC Runtime Library Exception.
Format changes.
* config/arm/rtems.h: Likewise.
* config/bfin/rtems.h: Likewise.
* config/i386/rtemself.h: Likewise.
* config/lm32/rtems.h: Likewise.
* config/m32c/rtems.h: Likewise.
* config/m68k/rtemself.h: Likewise.
* config/microblaze/rtems.h: Likewise.
* config/mips/rtems.h: Likewise.
* config/moxie/rtems.h: Likewise.
* config/nios2/rtems.h: Likewise.
* config/rs6000/rtems.h: Likewise.
* config/rtems.h: Likewise.
* config/sh/rtems.h: Likewise.
* config/sh/rtemself.h: Likewise.
* config/sparc/rtemself.h: Likewise.


Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/config/aarch64/rtems.h
branches/gcc-7-branch/gcc/config/arm/rtems.h
branches/gcc-7-branch/gcc/config/bfin/rtems.h
branches/gcc-7-branch/gcc/config/i386/rtemself.h
branches/gcc-7-branch/gcc/config/lm32/rtems.h
branches/gcc-7-branch/gcc/config/m32c/rtems.h
branches/gcc-7-branch/gcc/config/m68k/rtemself.h
branches/gcc-7-branch/gcc/config/microblaze/rtems.h
branches/gcc-7-branch/gcc/config/mips/rtems.h
branches/gcc-7-branch/gcc/config/moxie/rtems.h
branches/gcc-7-branch/gcc/config/nios2/rtems.h
branches/gcc-7-branch/gcc/config/rs6000/rtems.h
branches/gcc-7-branch/gcc/config/rtems.h
branches/gcc-7-branch/gcc/config/sh/rtems.h
branches/gcc-7-branch/gcc/config/sh/rtemself.h
branches/gcc-7-branch/gcc/config/sparc/rtemself.h
branches/gcc-7-branch/gcc/config/v850/rtems.h

[Bug tree-optimization/81556] [7/8 Regression] Wrong code at -O2

2017-07-26 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81556

Jakub Jelinek  changed:

   What|Removed |Added

 Status|NEW |ASSIGNED
   Assignee|unassigned at gcc dot gnu.org  |jakub at gcc dot gnu.org
   Target Milestone|--- |7.2
Summary|Wrong code at -O2   |[7/8 Regression] Wrong code
   ||at -O2

--- Comment #3 from Jakub Jelinek  ---
But it is indeed true that this seems to be reassoc.  That pass shouldn't be
resetting the range info, instead it shouldn't reuse SSA_NAMEs unless they must
have the same value as before.  It has code to avoid the reusing, but most
likely this is a corner case that isn't handled well.
I'll have a look.

[Bug tree-optimization/81455] [7 Regression] Compile-time hog w/ -O1 -funswitch-loops

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81455

--- Comment #5 from Richard Biener  ---
Author: rguenth
Date: Wed Jul 26 08:36:34 2017
New Revision: 250560

URL: https://gcc.gnu.org/viewcvs?rev=250560&root=gcc&view=rev
Log:
2017-07-26  Richard Biener  

Backport from mainline
2017-06-02  Richard Biener  
Markus Eisenmann  

PR libstdc++/80721
* libsupc++/eh_alloc.cc (pool::free): Keep list properly
sorted and add missing freelist item merging cases.

2017-06-18  Richard Biener  

PR tree-optimization/81410
* tree-vect-stmts.c (vectorizable_load): Properly adjust for
the gap in the ! slp_perm SLP case after each group.

* gcc.dg/vect/pr81410.c: New testcase.

2017-07-25  Richard Biener  

PR tree-optimization/81455
* tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
not walk in cycles when looking for guards.

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

2017-07-25  Richard Biener  

PR middle-end/81505
* fold-const.c (fold_negate_const): TREE_OVERFLOW should be
sticky.

* gcc.dg/ubsan/pr81505.c: New testcase.

2017-07-04  Jakub Jelinek  

PR target/81175
* gcc.target/i386/pr69255-2.c (foo): Use the return value of the
gather.

2017-06-28  Jakub Jelinek  

PR target/81175
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
rather than def_builtin_pure for __builtin_ia32_gatherpf*.

2017-06-26  Richard Biener  

PR target/81175
* config/i386/i386.c (ix86_init_mmx_sse_builtins):
Use def_builtin_pure for all gather builtins.

* gfortran.dg/pr81175.f: New testcase.

2017-06-21  Marc Glisse  

* config/i386/i386.c (struct builtin_isa): New field pure_p.
Reorder for compactness.
(def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
(def_builtin_pure, def_builtin_pure2): New functions.
(ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.

* gcc.dg/tree-ssa/addadd.c: Un-XFAIL.
* gcc.dg/tree-ssa/addadd-2.c: New file.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.dg/pr81455.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/ubsan/pr81505.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/vect/pr81410.c
branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/getround.c
branches/gcc-7-branch/gcc/testsuite/gfortran.dg/pr81175.f
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/config/i386/i386.c
branches/gcc-7-branch/gcc/fold-const.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr69255-2.c
branches/gcc-7-branch/gcc/tree-ssa-loop-unswitch.c
branches/gcc-7-branch/gcc/tree-vect-stmts.c
branches/gcc-7-branch/libstdc++-v3/ChangeLog
branches/gcc-7-branch/libstdc++-v3/libsupc++/eh_alloc.cc

[Bug c++/81410] [5/6/7 Regression] -O3 breaks code

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81410

--- Comment #12 from Richard Biener  ---
Author: rguenth
Date: Wed Jul 26 08:36:34 2017
New Revision: 250560

URL: https://gcc.gnu.org/viewcvs?rev=250560&root=gcc&view=rev
Log:
2017-07-26  Richard Biener  

Backport from mainline
2017-06-02  Richard Biener  
Markus Eisenmann  

PR libstdc++/80721
* libsupc++/eh_alloc.cc (pool::free): Keep list properly
sorted and add missing freelist item merging cases.

2017-06-18  Richard Biener  

PR tree-optimization/81410
* tree-vect-stmts.c (vectorizable_load): Properly adjust for
the gap in the ! slp_perm SLP case after each group.

* gcc.dg/vect/pr81410.c: New testcase.

2017-07-25  Richard Biener  

PR tree-optimization/81455
* tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
not walk in cycles when looking for guards.

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

2017-07-25  Richard Biener  

PR middle-end/81505
* fold-const.c (fold_negate_const): TREE_OVERFLOW should be
sticky.

* gcc.dg/ubsan/pr81505.c: New testcase.

2017-07-04  Jakub Jelinek  

PR target/81175
* gcc.target/i386/pr69255-2.c (foo): Use the return value of the
gather.

2017-06-28  Jakub Jelinek  

PR target/81175
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
rather than def_builtin_pure for __builtin_ia32_gatherpf*.

2017-06-26  Richard Biener  

PR target/81175
* config/i386/i386.c (ix86_init_mmx_sse_builtins):
Use def_builtin_pure for all gather builtins.

* gfortran.dg/pr81175.f: New testcase.

2017-06-21  Marc Glisse  

* config/i386/i386.c (struct builtin_isa): New field pure_p.
Reorder for compactness.
(def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
(def_builtin_pure, def_builtin_pure2): New functions.
(ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.

* gcc.dg/tree-ssa/addadd.c: Un-XFAIL.
* gcc.dg/tree-ssa/addadd-2.c: New file.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.dg/pr81455.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/ubsan/pr81505.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/vect/pr81410.c
branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/getround.c
branches/gcc-7-branch/gcc/testsuite/gfortran.dg/pr81175.f
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/config/i386/i386.c
branches/gcc-7-branch/gcc/fold-const.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr69255-2.c
branches/gcc-7-branch/gcc/tree-ssa-loop-unswitch.c
branches/gcc-7-branch/gcc/tree-vect-stmts.c
branches/gcc-7-branch/libstdc++-v3/ChangeLog
branches/gcc-7-branch/libstdc++-v3/libsupc++/eh_alloc.cc

[Bug target/81175] [7 Regression] EXC_BAD_ACCESS in ::slpeel_duplicate_current_defs_from_edges(edge, edge, edge, edge) at is-a.h:192

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81175

--- Comment #8 from Richard Biener  ---
Author: rguenth
Date: Wed Jul 26 08:36:34 2017
New Revision: 250560

URL: https://gcc.gnu.org/viewcvs?rev=250560&root=gcc&view=rev
Log:
2017-07-26  Richard Biener  

Backport from mainline
2017-06-02  Richard Biener  
Markus Eisenmann  

PR libstdc++/80721
* libsupc++/eh_alloc.cc (pool::free): Keep list properly
sorted and add missing freelist item merging cases.

2017-06-18  Richard Biener  

PR tree-optimization/81410
* tree-vect-stmts.c (vectorizable_load): Properly adjust for
the gap in the ! slp_perm SLP case after each group.

* gcc.dg/vect/pr81410.c: New testcase.

2017-07-25  Richard Biener  

PR tree-optimization/81455
* tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
not walk in cycles when looking for guards.

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

2017-07-25  Richard Biener  

PR middle-end/81505
* fold-const.c (fold_negate_const): TREE_OVERFLOW should be
sticky.

* gcc.dg/ubsan/pr81505.c: New testcase.

2017-07-04  Jakub Jelinek  

PR target/81175
* gcc.target/i386/pr69255-2.c (foo): Use the return value of the
gather.

2017-06-28  Jakub Jelinek  

PR target/81175
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
rather than def_builtin_pure for __builtin_ia32_gatherpf*.

2017-06-26  Richard Biener  

PR target/81175
* config/i386/i386.c (ix86_init_mmx_sse_builtins):
Use def_builtin_pure for all gather builtins.

* gfortran.dg/pr81175.f: New testcase.

2017-06-21  Marc Glisse  

* config/i386/i386.c (struct builtin_isa): New field pure_p.
Reorder for compactness.
(def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
(def_builtin_pure, def_builtin_pure2): New functions.
(ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.

* gcc.dg/tree-ssa/addadd.c: Un-XFAIL.
* gcc.dg/tree-ssa/addadd-2.c: New file.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.dg/pr81455.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/ubsan/pr81505.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/vect/pr81410.c
branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/getround.c
branches/gcc-7-branch/gcc/testsuite/gfortran.dg/pr81175.f
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/config/i386/i386.c
branches/gcc-7-branch/gcc/fold-const.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr69255-2.c
branches/gcc-7-branch/gcc/tree-ssa-loop-unswitch.c
branches/gcc-7-branch/gcc/tree-vect-stmts.c
branches/gcc-7-branch/libstdc++-v3/ChangeLog
branches/gcc-7-branch/libstdc++-v3/libsupc++/eh_alloc.cc

[Bug sanitizer/81505] [5/6/7 Regression] ICE in tree-ssa-loop-manip.c:95 with -fsanitize=signed-integer-overflow

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81505

--- Comment #4 from Richard Biener  ---
Author: rguenth
Date: Wed Jul 26 08:36:34 2017
New Revision: 250560

URL: https://gcc.gnu.org/viewcvs?rev=250560&root=gcc&view=rev
Log:
2017-07-26  Richard Biener  

Backport from mainline
2017-06-02  Richard Biener  
Markus Eisenmann  

PR libstdc++/80721
* libsupc++/eh_alloc.cc (pool::free): Keep list properly
sorted and add missing freelist item merging cases.

2017-06-18  Richard Biener  

PR tree-optimization/81410
* tree-vect-stmts.c (vectorizable_load): Properly adjust for
the gap in the ! slp_perm SLP case after each group.

* gcc.dg/vect/pr81410.c: New testcase.

2017-07-25  Richard Biener  

PR tree-optimization/81455
* tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
not walk in cycles when looking for guards.

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

2017-07-25  Richard Biener  

PR middle-end/81505
* fold-const.c (fold_negate_const): TREE_OVERFLOW should be
sticky.

* gcc.dg/ubsan/pr81505.c: New testcase.

2017-07-04  Jakub Jelinek  

PR target/81175
* gcc.target/i386/pr69255-2.c (foo): Use the return value of the
gather.

2017-06-28  Jakub Jelinek  

PR target/81175
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
rather than def_builtin_pure for __builtin_ia32_gatherpf*.

2017-06-26  Richard Biener  

PR target/81175
* config/i386/i386.c (ix86_init_mmx_sse_builtins):
Use def_builtin_pure for all gather builtins.

* gfortran.dg/pr81175.f: New testcase.

2017-06-21  Marc Glisse  

* config/i386/i386.c (struct builtin_isa): New field pure_p.
Reorder for compactness.
(def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
(def_builtin_pure, def_builtin_pure2): New functions.
(ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.

* gcc.dg/tree-ssa/addadd.c: Un-XFAIL.
* gcc.dg/tree-ssa/addadd-2.c: New file.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.dg/pr81455.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/ubsan/pr81505.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/vect/pr81410.c
branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/getround.c
branches/gcc-7-branch/gcc/testsuite/gfortran.dg/pr81175.f
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/config/i386/i386.c
branches/gcc-7-branch/gcc/fold-const.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr69255-2.c
branches/gcc-7-branch/gcc/tree-ssa-loop-unswitch.c
branches/gcc-7-branch/gcc/tree-vect-stmts.c
branches/gcc-7-branch/libstdc++-v3/ChangeLog
branches/gcc-7-branch/libstdc++-v3/libsupc++/eh_alloc.cc

[Bug libstdc++/80721] Sorting/Merging of free EH-emergency buffer may wrong or uncomplete

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80721

--- Comment #9 from Richard Biener  ---
Author: rguenth
Date: Wed Jul 26 08:36:34 2017
New Revision: 250560

URL: https://gcc.gnu.org/viewcvs?rev=250560&root=gcc&view=rev
Log:
2017-07-26  Richard Biener  

Backport from mainline
2017-06-02  Richard Biener  
Markus Eisenmann  

PR libstdc++/80721
* libsupc++/eh_alloc.cc (pool::free): Keep list properly
sorted and add missing freelist item merging cases.

2017-06-18  Richard Biener  

PR tree-optimization/81410
* tree-vect-stmts.c (vectorizable_load): Properly adjust for
the gap in the ! slp_perm SLP case after each group.

* gcc.dg/vect/pr81410.c: New testcase.

2017-07-25  Richard Biener  

PR tree-optimization/81455
* tree-ssa-loop-unswitch.c (find_loop_guard): Make sure to
not walk in cycles when looking for guards.

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

2017-07-25  Richard Biener  

PR middle-end/81505
* fold-const.c (fold_negate_const): TREE_OVERFLOW should be
sticky.

* gcc.dg/ubsan/pr81505.c: New testcase.

2017-07-04  Jakub Jelinek  

PR target/81175
* gcc.target/i386/pr69255-2.c (foo): Use the return value of the
gather.

2017-06-28  Jakub Jelinek  

PR target/81175
* config/i386/i386.c (ix86_init_mmx_sse_builtins): Use def_builtin
rather than def_builtin_pure for __builtin_ia32_gatherpf*.

2017-06-26  Richard Biener  

PR target/81175
* config/i386/i386.c (ix86_init_mmx_sse_builtins):
Use def_builtin_pure for all gather builtins.

* gfortran.dg/pr81175.f: New testcase.

2017-06-21  Marc Glisse  

* config/i386/i386.c (struct builtin_isa): New field pure_p.
Reorder for compactness.
(def_builtin, def_builtin2, ix86_add_new_builtins): Handle pure_p.
(def_builtin_pure, def_builtin_pure2): New functions.
(ix86_init_mmx_sse_builtins) [__builtin_ia32_stmxcsr]: Mark as pure.

* gcc.dg/tree-ssa/addadd.c: Un-XFAIL.
* gcc.dg/tree-ssa/addadd-2.c: New file.

Added:
branches/gcc-7-branch/gcc/testsuite/gcc.dg/pr81455.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/ubsan/pr81505.c
branches/gcc-7-branch/gcc/testsuite/gcc.dg/vect/pr81410.c
branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/getround.c
branches/gcc-7-branch/gcc/testsuite/gfortran.dg/pr81175.f
Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/config/i386/i386.c
branches/gcc-7-branch/gcc/fold-const.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/testsuite/gcc.target/i386/pr69255-2.c
branches/gcc-7-branch/gcc/tree-ssa-loop-unswitch.c
branches/gcc-7-branch/gcc/tree-vect-stmts.c
branches/gcc-7-branch/libstdc++-v3/ChangeLog
branches/gcc-7-branch/libstdc++-v3/libsupc++/eh_alloc.cc

[Bug libstdc++/80721] Sorting/Merging of free EH-emergency buffer may wrong or uncomplete

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80721

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||7.1.1
 Resolution|--- |FIXED
  Known to fail||7.1.0

--- Comment #8 from Richard Biener  ---
Fixed for GCC 7.2.

[Bug c++/70693] valgrind error in get_visual_column

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70693

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #1 from David Binderman  ---
Problem seems to have gone away.

[Bug tree-optimization/81455] [7 Regression] Compile-time hog w/ -O1 -funswitch-loops

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81455

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||7.1.1
 Resolution|--- |FIXED
  Known to fail||7.1.0

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

[Bug target/81175] [7 Regression] EXC_BAD_ACCESS in ::slpeel_duplicate_current_defs_from_edges(edge, edge, edge, edge) at is-a.h:192

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81175

Richard Biener  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||7.1.1, 8.0
 Resolution|--- |FIXED
  Known to fail|8.0 |

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

[Bug other/71325] intl/dcigettext.c:588]: (style) Redundant condition

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71325

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |WONTFIX

--- Comment #2 from David Binderman  ---
Bug should be reported elsewhere.

[Bug target/81550] [8 regression] gcc.target/powerpc/loop_align.c fails starting with r250482

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81550

Richard Biener  changed:

   What|Removed |Added

   Target Milestone|--- |8.0

[Bug tree-optimization/81554] [8 Regression] 25% performance regression in Himeno benchmark

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81554

Richard Biener  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2017-07-26
 CC||hubicka at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |rguenth at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #2 from Richard Biener  ---
Bah.

I wonder if we should drop to -fwrapv semantics (thus RTL semantics) at some
point after GIMPLE loop optimizations, preferably before reassoc after loop.

It shouldn't be too difficult to implement that (well, just a "bit" ugly)
to try benchmarking it.  To do it "cleanly" we'd add/change the optimization
node associated with cfun.  In a new pass_late_gimple_begin do

pop_cfun ();

push_cfun ();

unless fwrapv/ftrapv is already set, of course.

Going to try sth like that.

[Bug rtl-optimization/65628] valgrind error in improve_allocation

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65628

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #6 from David Binderman  ---
Problem seems to have gone away.

[Bug ipa/81520] [8 Regression] ICE: in function_and_variable_visibility, at ipa-visibility.c:639

2017-07-26 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81520

Martin Liška  changed:

   What|Removed |Added

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

--- Comment #3 from Martin Liška  ---
Fixed.

[Bug sanitizer/81186] SIGSEGV when using Address Sanitizer with nested functions

2017-07-26 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81186

Martin Liška  changed:

   What|Removed |Added

  Known to work||8.0
  Known to fail||7.1.0

--- Comment #3 from Martin Liška  ---
Fixed on trunk so far.

[Bug sanitizer/81186] SIGSEGV when using Address Sanitizer with nested functions

2017-07-26 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81186

--- Comment #2 from Martin Liška  ---
Author: marxin
Date: Wed Jul 26 08:52:37 2017
New Revision: 250561

URL: https://gcc.gnu.org/viewcvs?rev=250561&root=gcc&view=rev
Log:
Move non-local goto expansion after parm_birth_insn (PR sanitize/81186).

2017-07-26  Martin Liska  

PR sanitize/81186
* function.c (expand_function_start): Make expansion of
nonlocal_goto_save_area after parm_birth_insn.
2017-07-26  Martin Liska  

PR sanitize/81186
* gcc.dg/asan/pr81186.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/asan/pr81186.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/function.c
trunk/gcc/testsuite/ChangeLog

[Bug tree-optimization/81555] [5/6/7/8 Regression] Wrong code at -O1

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81555

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2
  Known to work||4.8.5
   Target Milestone|--- |7.2
Summary|Wrong code at -O1   |[5/6/7/8 Regression] Wrong
   ||code at -O1
  Known to fail||5.4.0, 6.3.0, 7.1.0

--- Comment #5 from Richard Biener  ---
Note that with -O2 it also fails with GCC 5 and 6.  GCC 4.8 is fine.

[Bug c/57961] Excessive memory use with -O0 ?

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57961

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |FIXED

--- Comment #1 from David Binderman  ---
Code now compiles happily in under 1Gig.

[Bug lto/81487] [mingw32] ld.exe: error: asprintf failed

2017-07-26 Thread gjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81487

--- Comment #4 from Georg-Johann Lay  ---
Author: gjl
Date: Wed Jul 26 08:58:37 2017
New Revision: 250562

URL: https://gcc.gnu.org/viewcvs?rev=250562&root=gcc&view=rev
Log:
lto-plugin/
Backport from 2017-07-21 trunk r250428.
PR lto/81487
* lto-plugin.c (claim_file_handler): Use xasprintf instead of
asprintf.
[hi!=0]: Swap hi and lo arguments supplied to xasprintf.
gcc/
Backport from 2017-07-25 trunk r250499.
PR 81487
* hsa-brig.c (brig_init): Use xasprintf instead of asprintf.
* gimple-pretty-print.c (dump_probability): Same.
* tree-ssa-structalias.c (alias_get_name): Same.

Modified:
branches/gcc-7-branch/gcc/ChangeLog
branches/gcc-7-branch/gcc/gimple-pretty-print.c
branches/gcc-7-branch/gcc/hsa-brig.c
branches/gcc-7-branch/gcc/tree-ssa-structalias.c
branches/gcc-7-branch/lto-plugin/ChangeLog
branches/gcc-7-branch/lto-plugin/lto-plugin.c

[Bug libgcc/78779] libgcc/soft-fp/op-common.h:900: possible missing break ?

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78779

David Binderman  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |WONTFIX

--- Comment #4 from David Binderman  ---
As per Joseph's comment.

[Bug pch/78508] valgrind error in gt_pch_note_object when compiling C++

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78508

David Binderman  changed:

   What|Removed |Added

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

--- Comment #4 from David Binderman  ---
Problem seems to have gone away.

[Bug lto/81487] [mingw32] ld.exe: error: asprintf failed

2017-07-26 Thread gjl at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81487

Georg-Johann Lay  changed:

   What|Removed |Added

   Target Milestone|--- |7.2

[Bug tree-optimization/80613] [8 Regression] ICE in is_gimple_reg_type with -O2

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80613

David Binderman  changed:

   What|Removed |Added

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

--- Comment #10 from David Binderman  ---
Problem seems solved to me.

[Bug rtl-optimization/81559] [8 Regression] ICE: verify_flow_info failed (error: non-cold basic block 4 reachable only by paths crossing the cold partition) on 32-bit BE powerpc target

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81559

Richard Biener  changed:

   What|Removed |Added

 CC||hubicka at gcc dot gnu.org
   Target Milestone|--- |8.0

--- Comment #1 from Richard Biener  ---
Honza?

[Bug c/81306] valgrind error for function warn_for_multistatement_macros in file c-warn.c line 2474

2017-07-26 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81306

--- Comment #4 from Marek Polacek  ---
I've reproduced the issue but don't know what to do about it, it doesn't seem
to be a bug in the warning.  I looks like the macro maps contains holes:

cc1: note: token 77 has x-location == y-location == 0
78: 0, 0
cc1: note: token 78 has x-location == y-location == 0
79: 0, 0
cc1: note: token 79 has x-location == y-location == 0
80: 0, 0
cc1: note: token 80 has x-location == y-location == 0
81: 0, 0
cc1: note: token 81 has x-location == y-location == 0
82: 0, 0
cc1: note: token 82 has x-location == y-location == 0
83: 0, 0
cc1: note: token 83 has x-location == y-location == 0
84: 0, 0
cc1: note: token 84 has x-location == y-location == 0
85: 0, 0
cc1: note: token 85 has x-location == y-location == 0
86: 0, 0
cc1: note: token 86 has x-location == y-location == 0
87: 0, 0
cc1: note: token 87 has x-location == y-location == 0
88: 0, 0
cc1: note: token 88 has x-location == y-location == 0
89: 0, 0
cc1: note: token 89 has x-location == y-location == 0
90: 0, 0
cc1: note: token 90 has x-location == y-location == 0

[Bug c/81306] valgrind error for function warn_for_multistatement_macros in file c-warn.c line 2474

2017-07-26 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81306

--- Comment #5 from Marek Polacek  ---
And I wonder if that's what this comment in dump_location_info talks about:

1187   for (unsigned int i = 0; i < MACRO_MAP_NUM_MACRO_TOKENS (map); i++)
1188 {
1189   source_location x = MACRO_MAP_LOCATIONS (map)[2 * i];
1190   source_location y = MACRO_MAP_LOCATIONS (map)[(2 * i) + 1];
1191 
1192   /* linemap_add_macro_token encodes token numbers in an expansion
1193  by putting them after MAP_START_LOCATION. */
1194 
1195   /* I'm typically seeing 4 uninitialized entries at the end of
1196  0xafafafaf.
1197  This appears to be due to macro.c:replace_args
1198  adding 2 extra args for padding tokens; presumably there may
1199  be a leading and/or trailing padding token injected,
1200  each for 2 more location slots.
1201  This would explain there being up to 4 source_locations slots
1202  that may be uninitialized.  */

[Bug tree-optimization/81558] Loop not vectorized

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81558

Richard Biener  changed:

   What|Removed |Added

 CC||rguenth at gcc dot gnu.org
 Blocks||53947

--- Comment #1 from Richard Biener  ---
The inner loop in foo2 is completely unrolled by GCC and imgY_org[y][x] is

  _32 = (long unsigned int) y_103;
  _33 = _32 * 8;
  _34 = imgY_org.8_31 + _33;
  _35 = *_34;

where *_34 aliases *orgptr.  Thus it's not possible to vectorize this without
a runtime alias check.  The innermost loop in foo1 is vectorized, the unrolled
loop in foo2 is not basic-block vectorized because basic-block vectorization
runs into the very same dependence issue.

Does LLVM do a runtime alias check here?  For foo1 GCC adds a runtime alias
check
(BB vectorization cannot version for aliasing).


Referenced Bugs:

https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53947
[Bug 53947] [meta-bug] vectorizer missed-optimizations

[Bug c/81306] valgrind error for function warn_for_multistatement_macros in file c-warn.c line 2474

2017-07-26 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81306

Marek Polacek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-07-26
 Ever confirmed|0   |1

--- Comment #6 from Marek Polacek  ---
So, confirmed, but clueless.

[Bug rtl-optimization/38518] Excessive compile time with -O3

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38518

--- Comment #13 from Richard Biener  ---
Also look at gcc.opensuse.org/ in the c++bench "random" part.  At -O2 it shows

  df live&initialized regs:  12.12 (31%) usr
  backwards jump threading:   6.44 (17%) usr

the backwards jump threading thing is new.  Jeff?

At -O3 it runs OOM on vangelis, czerny reports 3.9GB memory use and besides the
above:

  load CSE after reload   : 120.58 (70%) usr

I try to add most "interesting" compile-time/memory-use testcases to the
C++ tester "random" part so we can track time-report / memory usage issues
there.

I think I've seen the load CSE after reload issue elsewhere, too.

[Bug c/81543] attribute may_alias on function and variable declarations silently accepted

2017-07-26 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81543

Marek Polacek  changed:

   What|Removed |Added

 CC||mpolacek at gcc dot gnu.org

--- Comment #2 from Marek Polacek  ---
may_alias is the only attribute that is missing a handler in
c_common_attribute_table.

[Bug rtl-optimization/38518] Excessive compile time with -O3

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38518

Richard Biener  changed:

   What|Removed |Added

 CC||law at gcc dot gnu.org

--- Comment #14 from Richard Biener  ---
Actually CCing Jeff now -- see last comment, backward jump-threading
compile-time hog at -O2.

[Bug c/81543] attribute may_alias on function and variable declarations silently accepted

2017-07-26 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81543

--- Comment #3 from Marek Polacek  ---
But adding one wouldn't help because

487   /* If we require a type, but were passed a decl, set up to make a
488  new type and update the one in the decl.  ATTR_FLAG_TYPE_IN_PLACE
489  would have applied if we'd been passed a type, but we cannot
modify
490  the decl's type in place here.  */
491   if (spec->type_required && DECL_P (*anode))
492 {
493   anode = &TREE_TYPE (*anode);
494   flags &= ~(int) ATTR_FLAG_TYPE_IN_PLACE;
495 }

[Bug c/81453] relational expression involving null pointer not diagnosed with -Wall

2017-07-26 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81453

Marek Polacek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2017-07-26
 CC||mpolacek at gcc dot gnu.org
   Assignee|unassigned at gcc dot gnu.org  |mpolacek at gcc dot 
gnu.org
 Ever confirmed|0   |1

[Bug c/81453] relational expression involving null pointer not diagnosed with -Wall

2017-07-26 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81453

Marek Polacek  changed:

   What|Removed |Added

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

[Bug fortran/81552] -finit-integer=n is restricted to 32-bit INTEGER.

2017-07-26 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81552

Dominique d'Humieres  changed:

   What|Removed |Added

   Priority|P3  |P5
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-07-26
Summary|-finit-integer=n|-finit-integer=n is
   ||restricted to 32-bit
   ||INTEGER.
 Ever confirmed|0   |1
   Severity|normal  |enhancement

--- Comment #1 from Dominique d'Humieres  ---
>   In fact, N is an 32-bit INTEGER in the range [-2147483648 ; 2147483647]

This is true even for arrays of 64-bit INTEGER:

integer(8) :: i(4)
print *, i
end

compiled with -finit-integer=2147483648 gives at run time

  -2147483648  -2147483648  -2147483648 
-2147483648

at least since gcc 4.8.5.

[Bug tree-optimization/81556] [7/8 Regression] Wrong code at -O2

2017-07-26 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81556

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

Untested fix.  The current code whether a SSA_NAME can be reused or not is
based on whether all the rhs2 ops are the same from the toplevel stmt (and
whether there is powi/negate).  That should work fine as long as the number of
ops is the same after optimization, but in this case there is a removal of
reduncant op, at which point that doesn't work anymore.

[Bug libgcc/78779] libgcc/soft-fp/op-common.h:900: possible missing break ?

2017-07-26 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78779

Jakub Jelinek  changed:

   What|Removed |Added

 CC||jakub at gcc dot gnu.org
 Resolution|WONTFIX |FIXED

--- Comment #5 from Jakub Jelinek  ---
Well, WONTFIX is weird, because this has been actually fixed in r244884 in GCC
and in af1a265da09829f9042619c885c64eb8567a59ce in glibc.

[Bug fortran/81499] internal compiler error when compiling gfortran code with user-defined derived type i/o

2017-07-26 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81499

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-07-26
 CC||jvdelisle at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Dominique d'Humieres  ---
Confirmed. If I compile the code with an instrumented compiler, I get

ASAN:DEADLYSIGNAL
=
==6481==ERROR: AddressSanitizer: stack-overflow on address 0x7fff5bc00ff8 (pc
0x0001002be1d1 bp 0x7fff5bc01010 sp 0x7fff5bc01000 T0)
#0 0x1002be1d0 in derived_inaccessible(gfc_symbol*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.6.0/8.0.0/f951+0x1002be1d0)
#1 0x1002be4d3 in derived_inaccessible(gfc_symbol*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.6.0/8.0.0/f951+0x1002be4d3)
#2 0x1002be4d3 in derived_inaccessible(gfc_symbol*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.6.0/8.0.0/f951+0x1002be4d3)
#3 0x1002be4d3 in derived_inaccessible(gfc_symbol*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.6.0/8.0.0/f951+0x1002be4d3)
#4 0x1002be4d3 in derived_inaccessible(gfc_symbol*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.6.0/8.0.0/f951+0x1002be4d3)
#5 0x1002be4d3 in derived_inaccessible(gfc_symbol*)
(/opt/gcc/gcc8g/libexec/gcc/x86_64-apple-darwin16.6.0/8.0.0/f951+0x1002be4d3)
...

The code compiles and gives the expected results at run time if remove the line
(circular TYPEs)

 type (tape_type), pointer  :: ref  => null()  !  if this line is
commented out, the code will compile


Likely related to pr46244.

[Bug tree-optimization/81554] [8 Regression] 25% performance regression in Himeno benchmark

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81554

--- Comment #3 from Richard Biener  ---
Created attachment 41833
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41833&action=edit
patch

While we do this transform late with the attached patch it doesn't help (noisy)
performance.  Before:

 Score based on Pentium III 600MHz using Fortran 77: 19.465005
 Score based on Pentium III 600MHz using Fortran 77: 19.558720
 Score based on Pentium III 600MHz using Fortran 77: 19.546069
 Score based on Pentium III 600MHz using Fortran 77: 19.572887
 Score based on Pentium III 600MHz using Fortran 77: 19.528043
 Score based on Pentium III 600MHz using Fortran 77: 19.477979
 Score based on Pentium III 600MHz using Fortran 77: 19.534370
 Score based on Pentium III 600MHz using Fortran 77: 19.562271
 Score based on Pentium III 600MHz using Fortran 77: 19.495751
 Score based on Pentium III 600MHz using Fortran 77: 19.542132

After:

 Score based on Pentium III 600MHz using Fortran 77: 19.436746
 Score based on Pentium III 600MHz using Fortran 77: 19.510495
 Score based on Pentium III 600MHz using Fortran 77: 19.479649
 Score based on Pentium III 600MHz using Fortran 77: 19.470079
 Score based on Pentium III 600MHz using Fortran 77: 19.470537
 Score based on Pentium III 600MHz using Fortran 77: 19.539023
 Score based on Pentium III 600MHz using Fortran 77: 19.421880
 Score based on Pentium III 600MHz using Fortran 77: 19.504202
 Score based on Pentium III 600MHz using Fortran 77: 19.545846
 Score based on Pentium III 600MHz using Fortran 77: 19.571152

Either the transform is required pre-loop opts
or flag_wrapv pessimizes stuff.  I suppose some additional pass
re-shuffling would be in order, like moving the block late_gimple_start,
reassoc, strength_reduction to after vrp, phi_only_cprop so VRP has
the chance to compute good !flag_wrapv ranges late.  That results in

 Score based on Pentium III 600MHz using Fortran 77: 19.076637
 Score based on Pentium III 600MHz using Fortran 77: 19.141776
 Score based on Pentium III 600MHz using Fortran 77: 19.078936
 Score based on Pentium III 600MHz using Fortran 77: 19.146834
 Score based on Pentium III 600MHz using Fortran 77: 19.098964
 Score based on Pentium III 600MHz using Fortran 77: 19.098782
 Score based on Pentium III 600MHz using Fortran 77: 19.127632
 Score based on Pentium III 600MHz using Fortran 77: 19.095203
 Score based on Pentium III 600MHz using Fortran 77: 19.111919
 Score based on Pentium III 600MHz using Fortran 77: 18.993788

thus looks even worse ;)  (all the above is with just -O3 on a Broadwell
system)  I guess reassoc is necessary for DOM to do a good CSE job.  OTOH
tracer and path splitting should enable more reassoc/SLSR so should be
before (but they shouldn't care about flag_wrapv).

Thus if we do

  NEXT_PASS (pass_sprintf_length, true);
  NEXT_PASS (pass_split_paths);
  NEXT_PASS (pass_tracer);
  NEXT_PASS (pass_thread_jumps);
  NEXT_PASS (pass_vrp, false /* warn_array_bounds_p */);
  /* The only const/copy propagation opportunities left after
 DOM and VRP should be due to degenerate PHI nodes.  So rather than
 run the full propagators, run a specialized pass which
 only examines PHIs to discover const/copy propagation
 opportunities.  */
  NEXT_PASS (pass_phi_only_cprop);
  /* Dumbing down to -fwrapv for reassoc to work and forwprop 
 folding not hindered by undefined overflow disabling transforms.
 Matches semantics of RTL.  */
  NEXT_PASS (pass_late_gimple_start);
  NEXT_PASS (pass_reassoc, false /* insert_powi_p */);
  NEXT_PASS (pass_strength_reduction);
  NEXT_PASS (pass_dominator, false /* may_peel_loop_headers_p */);
  /* The only const/copy propagation opportunities left after
 DOM and VRP should be due to degenerate PHI nodes.  So rather than
 run the full propagators, run a specialized pass which
 only examines PHIs to discover const/copy propagation
 opportunities.  */
  NEXT_PASS (pass_phi_only_cprop);
  NEXT_PASS (pass_strlen);
  NEXT_PASS (pass_thread_jumps);
  NEXT_PASS (pass_dse);

we end up with

 Score based on Pentium III 600MHz using Fortran 77: 19.467136
 Score based on Pentium III 600MHz using Fortran 77: 19.489240
 Score based on Pentium III 600MHz using Fortran 77: 19.413257
 Score based on Pentium III 600MHz using Fortran 77: 19.285549
 Score based on Pentium III 600MHz using Fortran 77: 19.352476
 Score based on Pentium III 600MHz using Fortran 77: 19.487067
 Score based on Pentium III 600MHz using Fortran 77: 19.513724
 Score based on Pentium III 600MHz using Fortran 77: 19.515330
 Score based on Pentium III 600MHz using Fortran 77: 19.523810
 Score based on Pentium III 600MHz using Fortran 77: 19.518709

Anyway, some more detailed analysis is required here [note I didn't try to
reproduce the slowdown].  Pass shuffling is always "interesting"...

[Bug fortran/81411] intrinsic polymorphic assignment run time error

2017-07-26 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81411

Dominique d'Humieres  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-07-26
 CC||pault at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #1 from Dominique d'Humieres  ---
Confirmed for gfortran supporting "Assignment to an allocatable polymorphic
variable", i.e., 7 and trunk. Compiling the test with an instrumented compiler
gives at run time

  calling display subroutine
ASAN:DEADLYSIGNAL
=
==6560==ERROR: AddressSanitizer: SEGV on unknown address 0x (pc
0x000103b42b44 bp 0x7fff5c0bdf40 sp 0x7fff5c0bdf00 T0)
==6560==The signal is caused by a READ memory access.
==6560==Hint: address points to the zero page.
#0 0x103b42b43 in __display_module_MOD_display
(/Users/dominiq/Documents/Fortran/g95bench/win/f90/bug/./a.out+0x11b43)
#1 0x103b42d46 in MAIN__
(/Users/dominiq/Documents/Fortran/g95bench/win/f90/bug/./a.out+0x11d46)
#2 0x103b43916 in main
(/Users/dominiq/Documents/Fortran/g95bench/win/f90/bug/./a.out+0x12916)
#3 0x7fff9e181234 in start (/usr/lib/system/libdyld.dylib+0x5234)

AddressSanitizer can not provide additional info.
SUMMARY: AddressSanitizer: SEGV
(/Users/dominiq/Documents/Fortran/g95bench/win/f90/bug/./a.out+0x11b43) in
__display_module_MOD_display
==6560==ABORTING

Program received signal SIGABRT: Process abort signal.

[Bug rtl-optimization/38518] Excessive compile time with -O3

2017-07-26 Thread dcb314 at hotmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38518

--- Comment #15 from David Binderman  ---
(In reply to David Binderman from comment #12)
> With recent gcc:
> 
> no -O flag: 2 seconds
> 
> -O2: 24 seconds
> 
> -O3: 247 seconds

Those numbers for a version of trunk gcc with lots of checking.

Without checking, I get gcc trunk with -O3 in 4 mins 56 seconds
and release gcc 7.1.1 in 3 minutes 38 seconds, so it still looks like it's
going backwards. 

From -ftime-report on trunk gcc with -O3:

$ grep "([0-9][0-9]\%) usr" report.out
 df live&initialized regs:  45.04 (16%) usr   0.06 ( 2%) sys  45.74 (15%) wall 
 0 kB ( 0%) ggc
 load CSE after reload   : 174.76 (60%) usr   0.07 ( 2%) sys 176.23 (60%) wall 
10 kB ( 0%) ggc
$

So I think that confirms what Richard is seeing.

[Bug middle-end/46932] Inefficient code sequence to access local variable

2017-07-26 Thread wilco at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46932

--- Comment #5 from Wilco  ---
Author: wilco
Date: Wed Jul 26 10:49:17 2017
New Revision: 250564

URL: https://gcc.gnu.org/viewcvs?rev=250564&root=gcc&view=rev
Log:
Fix PR46932: Block auto increment on frame pointer

Block auto increment on frame pointer references.  This is never
beneficial since the SFP expands into SP+C or FP+C during register
allocation.  The generated code for the testcase is now as expected:

str x30, [sp, -32]!
strbw0, [sp, 31]
add x0, sp, 31
bl  foo3
ldr x30, [sp], 32
ret

gcc/
PR middle-end/46932
* auto-inc-dec.c (parse_add_or_inc): Block autoinc on sfp.

gcc/testsuite/
PR middle-end/46932
* gcc.dg/pr46932.c: New testcase.

Added:
trunk/gcc/testsuite/gcc.dg/pr46932.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/auto-inc-dec.c
trunk/gcc/testsuite/ChangeLog

[Bug ipa/81293] sanitized g++ crashes heap-use-after-free gcc/libsanitizer/sanitizer_common/sanitizer_common_interceptors_format.inc:543 in printf_common

2017-07-26 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81293

Martin Liška  changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
  Known to work||5.4.0, 6.4.0, 7.1.0
 Resolution|--- |FIXED
  Known to fail|5.4.0, 6.4.0, 7.1.0 |

--- Comment #4 from Martin Liška  ---
It's fine for GCC 5,6,7 branches, thus closing as resolved.

[Bug sanitizer/81275] [5/6/7/8 Regression] -fsanitize=thread produce incorrect -Wreturn-type warning

2017-07-26 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81275

Jakub Jelinek  changed:

   What|Removed |Added

 CC||mpolacek at gcc dot gnu.org

--- Comment #4 from Jakub Jelinek  ---
Marek, could we reuse the fallthrough warning infrastructure for this to
determine whether there is a possible fallthrough or not?
Though, trying:
int
foo (int a, int b, int c)
{
  switch (c)
{
case 5:
  switch (a)
{
case 0:
  switch (b)
{
default:
  return 0;
}
  break;
#ifdef FT
case 7:
  break;
#endif
default:
  return 0;
}
case 6:
  return 7;
}
  return 8;
}

we don't warn about the fallthrough from case 5 to case 6 no matter if FT is
defined (in that case there is obvious fallthrough, say for foo (7, 0, 5), or
when FT is not defined (then there isn't, but gimple_seq_may_fallthru doesn't
know that).  Whether a label is emitted after a switch (for the break; label)
is determined already in the FEs based on whether any break; is present, no
matter if reachable or not.  So indeed, dead code such as the break; in your
#c0 testcase, or whatever other code followed by a break, is able to confuse
the gimplifier and eh lowering into assuming there might be fallthrough.
While the -Wreturn-type warning is emitted after cfg is built, the problem is
if we decide to emit the try/finally with a finally_tmp variable to avoid
duplicating the cleanup actions, then while after building cfg we optimize away
obviously unreachable code, we have no SSA form yet and thus determining if the
finally_tmp.N variable is always the same in all paths might be expensive.
At -O0 that actually isn't optimized by anything until assembly is emited, so
we still see in the assembly:
testl   %eax, %eax
jne .L9
movl$0, %ebx
movl$0, %r12d
jmp .L4
.L9:
movl$0, %ebx
movl$0, %r12d
.L4:
// Here both %ebx and %r12d are 0 (set the same on both paths reaching this
// label.
leaq-17(%rbp), %rax
movq%rax, %rdi
// Here we run ~C()
call_ZN1CD1Ev
// Now we test whether it is 1, which is never, in that case we fall through
// into returning without a value.
cmpl$1, %r12d
jne .L10
nop
jmp .L1
.L10:
movl%ebx, %eax
.L1:
addq$32, %rsp
popq%rbx
popq%r12
popq%rbp
ret

So, if we can't do anyuthing for this at the gimplifier level, we'd need to add
an optimization in the cfg pass that would look for cases like:
;;   basic block 4, loop depth 0
;;pred:   3
 [0.00%] [count: INV]:
  D.2315 = 0;
  finally_tmp.0 = 0;
  goto ; [INV] [count: INV]
;;succ:   6

;;   basic block 5, loop depth 0
;;pred:   3
 [0.00%] [count: INV]:
  D.2315 = 0;
  finally_tmp.0 = 0;
;;succ:   6

;;   basic block 6, loop depth 0
;;pred:   4
;;5
  C::~C (&c);
  switch (finally_tmp.0)  [INV] [count: INV], case 1:  [INV]
[count: INV]>
and optimize that switch into goto ; after checking that finally_tmp.0 var
is not addressable, not modified in the bb with the switch and set to the same
value at the end of all predecessor bbs.
But that would be an optimization, not sure if we want to do that generally for
-O0, or limit it to somehow specially marked finally_tmp.NN variables.

[Bug tree-optimization/81555] [5/6/7/8 Regression] Wrong code at -O1

2017-07-26 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81555

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-07-26
 CC||marxin at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #6 from Martin Liška  ---
So with -O2 it started to output '0, 0' in r234764.
For -O1 it started to output '0, 0' in r236338.

[Bug rtl-optimization/81553] [7/8 Regression] ICE in immed_wide_int_const, at emit-rtl.c:607

2017-07-26 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81553

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-07-26
 CC||bernds at codesourcery dot com,
   ||marxin at gcc dot gnu.org
Summary|[8 Regression] ICE in   |[7/8 Regression] ICE in
   |immed_wide_int_const, at|immed_wide_int_const, at
   |emit-rtl.c:607  |emit-rtl.c:607
 Ever confirmed|0   |1

--- Comment #1 from Martin Liška  ---
Confirmed, started with r244817.

[Bug ipa/81541] Potential size optimisation: reusing common function endings

2017-07-26 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81541

Martin Liška  changed:

   What|Removed |Added

 CC|mliska at suse dot cz  |
   Assignee|unassigned at gcc dot gnu.org  |marxin at gcc dot 
gnu.org

--- Comment #2 from Martin Liška  ---
Thanks for filling this, it will probably need some sharing of infrastructure
of current IPA split and IPA ICF. I will read the post and think about it more.

[Bug c/79153] -Wimplicit-fallthrough missed warning

2017-07-26 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79153

--- Comment #7 from Marek Polacek  ---
No WONTFIX, we ought to be able to handle this.

[Bug sanitizer/81275] [5/6/7/8 Regression] -fsanitize=thread produce incorrect -Wreturn-type warning

2017-07-26 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81275

--- Comment #5 from Marek Polacek  ---
(In reply to Jakub Jelinek from comment #4)
> Marek, could we reuse the fallthrough warning infrastructure for this to
> determine whether there is a possible fallthrough or not?
> Though, trying:
> int
> foo (int a, int b, int c)
> {
>   switch (c)
> {
> case 5:
>   switch (a)
>   {
>   case 0:
> switch (b)
>   {
>   default:
> return 0;
>   }
> break;
> #ifdef FT
>   case 7:
> break;
> #endif
>   default:
> return 0;
>   }
> case 6:
>   return 7;
> }
>   return 8;
> }
> 
> we don't warn about the fallthrough from case 5 to case 6 no matter if FT is
> defined (in that case there is obvious fallthrough, say for foo (7, 0, 5), or
> when FT is not defined (then there isn't, but gimple_seq_may_fallthru
> doesn't know that).  

Unfortunately, not yet, because -Wimplicit-fallthrough doesn't scan nested
switches (PR79153).

[Bug target/79793] Incorrect stack alignment for interrupt handler in 64-bit

2017-07-26 Thread hjl.tools at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79793

H.J. Lu  changed:

   What|Removed |Added

  Attachment #41830|0   |1
is obsolete||

--- Comment #14 from H.J. Lu  ---
Created attachment 41834
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41834&action=edit
An untested patch

[Bug middle-end/70992] Infinite recursion between fold_build2_stat_loc and fold_binary_loc w/ -fwrapv

2017-07-26 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70992

--- Comment #8 from Marek Polacek  ---
Author: mpolacek
Date: Wed Jul 26 11:53:17 2017
New Revision: 250566

URL: https://gcc.gnu.org/viewcvs?rev=250566&root=gcc&view=rev
Log:
PR middle-end/70992
* tree.c (build2_stat): Don't set TREE_CONSTANT on divisions by zero.

* gcc.dg/overflow-warn-1.c: Adjust dg-error.
* gcc.dg/overflow-warn-2.c: Likewise.
* gcc.dg/overflow-warn-3.c: Likewise.
* gcc.dg/overflow-warn-4.c: Likewise.
* gcc.dg/torture/pr70992-2.c: New test.
* gcc.dg/torture/pr70992.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/torture/pr70992-2.c
trunk/gcc/testsuite/gcc.dg/torture/pr70992.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/overflow-warn-1.c
trunk/gcc/testsuite/gcc.dg/overflow-warn-2.c
trunk/gcc/testsuite/gcc.dg/overflow-warn-3.c
trunk/gcc/testsuite/gcc.dg/overflow-warn-4.c
trunk/gcc/tree.c

[Bug target/79041] aarch64 backend emits R_AARCH64_ADR_PREL_PG_HI21 relocation despite -mpc-relative-literal-loads option being used

2017-07-26 Thread wilco at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79041

--- Comment #10 from Wilco  ---
Author: wilco
Date: Wed Jul 26 11:55:03 2017
New Revision: 250567

URL: https://gcc.gnu.org/viewcvs?rev=250567&root=gcc&view=rev
Log:
Disable pr79041-2.c with -mabi=ilp32.

gcc/testsuite/
PR target/79041
* gcc.target/aarch64/pr79041-2.c: Don't run in ILP32.

Modified:
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/aarch64/pr79041-2.c

[Bug middle-end/70992] Infinite recursion between fold_build2_stat_loc and fold_binary_loc w/ -fwrapv

2017-07-26 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70992

Marek Polacek  changed:

   What|Removed |Added

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

[Bug middle-end/70992] Infinite recursion between fold_build2_stat_loc and fold_binary_loc w/ -fwrapv

2017-07-26 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70992

Marek Polacek  changed:

   What|Removed |Added

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

--- Comment #9 from Marek Polacek  ---
Fixed for GCC 8.

[Bug target/79041] aarch64 backend emits R_AARCH64_ADR_PREL_PG_HI21 relocation despite -mpc-relative-literal-loads option being used

2017-07-26 Thread wilco at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79041

--- Comment #11 from Wilco  ---
Author: wilco
Date: Wed Jul 26 11:57:57 2017
New Revision: 250569

URL: https://gcc.gnu.org/viewcvs?rev=250569&root=gcc&view=rev
Log:
Disable pr79041-2.c with -mabi=ilp32.

gcc/testsuite/
PR target/79041
* gcc.target/aarch64/pr79041-2.c: Don't run in ILP32.

Modified:
branches/gcc-7-branch/gcc/testsuite/ChangeLog
branches/gcc-7-branch/gcc/testsuite/gcc.target/aarch64/pr79041-2.c

[Bug web/81560] New: Error in C documentation regarding min/max substitute macros MIN/MAX

2017-07-26 Thread um4711 at mutluit dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81560

Bug ID: 81560
   Summary: Error in C documentation regarding min/max substitute
macros MIN/MAX
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: web
  Assignee: unassigned at gcc dot gnu.org
  Reporter: um4711 at mutluit dot com
  Target Milestone: ---

On this documentation page an example for defining a macro MIN(X,Y) is given:
https://gcc.gnu.org/onlinedocs/gcc-3.4.2/gcc/Min-and-Max.html

There is a bug in the definition. It reads:

#define MIN(X,Y) ((X) < (Y) ? : (X) : (Y))

It can't compile; it of course needs to be changed to:

#define MIN(X,Y) ((X) < (Y) ? (X) : (Y))

[Bug gcov-profile/81561] New: [7/8 Regression] Segfault in gcov with -a argument

2017-07-26 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81561

Bug ID: 81561
   Summary: [7/8 Regression] Segfault in gcov with -a argument
   Product: gcc
   Version: 7.0
   URL: https://bugzilla.suse.com/show_bug.cgi?id=1050487
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: gcov-profile
  Assignee: unassigned at gcc dot gnu.org
  Reporter: marxin at gcc dot gnu.org
CC: marxin at gcc dot gnu.org
  Target Milestone: ---

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

Originally comes from openSUSE bugzilla.

[Bug gcov-profile/81561] [7/8 Regression] Segfault in gcov with -a argument

2017-07-26 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81561

--- Comment #1 from Martin Liška  ---
Created attachment 41836
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41836&action=edit
gcda file

[Bug gcov-profile/81561] [7/8 Regression] Segfault in gcov with -a argument

2017-07-26 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81561

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |ASSIGNED
   Last reconfirmed||2017-07-26
   Assignee|unassigned at gcc dot gnu.org  |marxin at gcc dot 
gnu.org
 Ever confirmed|0   |1

--- Comment #2 from Martin Liška  ---
Mine.

[Bug c/81448] False positive -Werror=multistatement-macros in openssl

2017-07-26 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81448

Marek Polacek  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-07-26
 Ever confirmed|0   |1

--- Comment #7 from Marek Polacek  ---
I think this is a real bug now:

void baz (void);

#define FOO for (int i = 0; i < 10; i++)

#define BAR \
void bar (void) \
{   \
  FOO   \
baz (); \
  return;   \
}

BAR

the warning is fooled because the "body" (baz();) and "next" are coming from
the same expansion, and "guard" isn't.

[Bug gcov-profile/81561] [7/8 Regression] Segfault in gcov with -a argument

2017-07-26 Thread rguenth at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81561

Richard Biener  changed:

   What|Removed |Added

   Priority|P3  |P2
   Target Milestone|--- |7.2

[Bug fortran/54072] BOZ with -std=f2008: wrongly accepted to TRANSFER/ABS/...; two BOZ not rejected for IOR/IEOR/IAND

2017-07-26 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54072

--- Comment #5 from Dominique d'Humieres  ---
See also pr81509.

[Bug fortran/81509] Wrong compilation error: iand/ieor/ior + boz + -std=f2008

2017-07-26 Thread dominiq at lps dot ens.fr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81509

Dominique d'Humieres  changed:

   What|Removed |Added

   Priority|P3  |P5
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-07-26
 Ever confirmed|0   |1
   Severity|normal  |enhancement

--- Comment #3 from Dominique d'Humieres  ---
(1) Work around: wrap the boz-literal-constant inside an INT, e.g.,

program p
  implicit none
  write(*,*) iand(int(z'1A2B3C4D' ),3), iand(8, int(z'1A2B3C4D' ))
  write(*,*)  ior(int(z'1A2B3C4D' ),3),  ior(8, int(z'1A2B3C4D' ))
  write(*,*) ieor(int(z'1A2B3C4D' ),3), ieor(8, int(z'1A2B3C4D' ))

  write(*,*) iand(int(o'123456'   ),4), iand(7, int(o'123456'   ))
  write(*,*)  ior(int(o'123456'   ),4),  ior(7, int(o'123456'   ))
  write(*,*) ieor(int(o'123456'   ),4), ieor(7, int(o'123456'   ))

  write(*,*) iand(int(b'001011101'),5), iand(6, int(b'001011101'))
  write(*,*)  ior(int(b'001011101'),5),  ior(6, int(b'001011101'))
  write(*,*) ieor(int(b'001011101'),5), ieor(6, int(b'001011101'))
end program p

(2) From
https://gcc.gnu.org/onlinedocs/gfortran/BOZ-literal-constants.html#BOZ-literal-constants

> In all other cases, the BOZ literal constant is converted to an INTEGER value 
> with the largest decimal representation. 

i.e., INTEGER(16) in 64-bit mode and INTEGER(8) in 32-bit mode. IMO it is
compatible with

> The processor shall allow the position of the leftmost nonzero bit to be
> at least z - 1, where z is the maximum value that could result from invoking
> the intrinsic function STORAGE_SIZE (13.8.175) with an argument that is
> a real or integer scalar of any kind supported by the processor.

Note that the (invalid, see pr54072) code

program p
  implicit none

  print *, kind(iand(b'001011101',b'101'))
  print *, kind(ieor(b'001011101',b'101'))
  print *, kind(ior(b'001011101',b'101'))
end program p

gives

  16
  16
  16

in 64-bit mode, and

   8
   8
   8

in 32-bit mode.

(3) I agree that the KIND should not be checked for boz-literal-constant.

  1   2   3   >