[Bug ipa/80899] [5/6/7/8 Regression] Devirtualization causes incorrect code generation with placement new in some cases

2017-05-27 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80899

Andrew Pinski  changed:

   What|Removed |Added

   Target Milestone|--- |5.5

[Bug c/80898] New: wrong code at -O2 and -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu

2017-05-27 Thread chengniansun at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80898

Bug ID: 80898
   Summary: wrong code at -O2 and -O3 in both 32-bit and 64-bit
modes on x86_64-linux-gnu
   Product: gcc
   Version: unknown
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: chengniansun at gmail dot com
  Target Milestone: ---

$ gcc-trunk -v
Using built-in specs.
COLLECT_GCC=gcc-trunk
COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/8.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-source-trunk/configure --enable-languages=c,c++,lto
--prefix=/usr/local/gcc-trunk --disable-bootstrap
Thread model: posix
gcc version 8.0.0 20170527 (experimental) [trunk revision 248540] (GCC) 
$ 
$ gcc-trunk -m32 -O3 small.c ; ./a.out
0
$ gcc-trunk -m32 -Os small.c ; ./a.out
3
$ cat small.c
int printf(const char *, ...);
struct S0 {
  int f0 : 24;
  int f1;
  int f74;
} a, *c = &a;
struct S0 fn1() {
  struct S0 b = {4, 3};
  return b;
}

int main() {
  *c = fn1();
  printf("%d\n", a.f1);
  return 0;
}
$

--- Comment #1 from Chengnian Sun  ---
*** Bug 80900 has been marked as a duplicate of this bug. ***

[Bug c/80900] New: wrong code at -O2 and -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu

2017-05-27 Thread chengniansun at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80900

Bug ID: 80900
   Summary: wrong code at -O2 and -O3 in both 32-bit and 64-bit
modes on x86_64-linux-gnu
   Product: gcc
   Version: unknown
Status: RESOLVED
  Severity: normal
  Priority: P3
 Component: c
  Assignee: unassigned at gcc dot gnu.org
  Reporter: chengniansun at gmail dot com
CC: chengniansun at gmail dot com
  Target Milestone: ---
Status: RESOLVED
CC: chengniansun at gmail dot com
Resolution: DUPLICATE

$ gcc-trunk -v
Using built-in specs.
COLLECT_GCC=gcc-trunk
COLLECT_LTO_WRAPPER=/usr/local/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/8.0.0/lto-wrapper
Target: x86_64-pc-linux-gnu
Configured with: ../gcc-source-trunk/configure --enable-languages=c,c++,lto
--prefix=/usr/local/gcc-trunk --disable-bootstrap
Thread model: posix
gcc version 8.0.0 20170527 (experimental) [trunk revision 248540] (GCC) 
$ 
$ gcc-trunk -m32 -O3 small.c ; ./a.out
0
$ gcc-trunk -m32 -Os small.c ; ./a.out
3
$ cat small.c
int printf(const char *, ...);
struct S0 {
  int f0 : 24;
  int f1;
  int f74;
} a, *c = &a;
struct S0 fn1() {
  struct S0 b = {4, 3};
  return b;
}

int main() {
  *c = fn1();
  printf("%d\n", a.f1);
  return 0;
}
$

--- Comment #1 from Chengnian Sun  ---
Reported twice due to gateway timeout.

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

[Bug tree-optimization/80899] New: Devirtualization causes incorrect code generation with placement new in some cases

2017-05-27 Thread pinskia at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80899

Bug ID: 80899
   Summary: Devirtualization causes incorrect code generation with
placement new in some cases
   Product: gcc
   Version: 7.0
Status: UNCONFIRMED
  Keywords: wrong-code
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: pinskia at gcc dot gnu.org
  Target Milestone: ---

From https://bugs.linaro.org/show_bug.cgi?id=2957:
Take:
#include 

struct base {
   virtual void f() =0;
};

template struct foo: base
{
   virtual void f() { if (sizeof(T) != sizeof(int)) __builtin_abort(); }
};

template struct bar
{
   void set() { val = new (&mem) foo (); }
   void doit() { val->f(); }

   foo mem;
   base *val;
};

int main()
{
   bar b;
   b.set();
   b.doit();
   return 0;
}

--- CUT ---

This code should not abort as the dynamic type of val is foo due to the
placement new in the call in set.  But currently aborts at -O2 and above due to
the devirtualization deciding the type is statically known as foo.

[Bug fortran/35339] Improve translation of implied do loop in transfer

2017-05-27 Thread koenigni at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35339

Nicolas Koenig  changed:

   What|Removed |Added

  Attachment #41420|0   |1
is obsolete||

--- Comment #9 from Nicolas Koenig  ---
Created attachment 41430
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41430&action=edit
Proposed patch for simplifying impl do loops

Fixed the bugs, it works now. I will submit it later this day.

@Jerry: This isn't the entire solution, I fear there will have to be changes in
trans-io.c to completely fix this PR ;)

[Bug target/80865] broken compilation on Mac OS X 10.5 / powerpc: unrecognizable insn

2017-05-27 Thread iains at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80865

--- Comment #1 from Iain Sandoe  ---

please could you apply the patches attached to :
https://gcc.gnu.org/ml/gcc-testresults/2017-01/msg02971.html

I suspect that you're reporting a pre-existing condition.
now we're back in stage #1 - we could post them for approval, and then
back-port for 7.2

[Bug ada/80897] New: [8.0] [sparc64] GNAT BUG , 20170520 (experimental) [trunk 248308]

2017-05-27 Thread matorola at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80897

Bug ID: 80897
   Summary: [8.0] [sparc64] GNAT BUG , 20170520 (experimental)
[trunk 248308]
   Product: gcc
   Version: 8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: ada
  Assignee: unassigned at gcc dot gnu.org
  Reporter: matorola at gmail dot com
  Target Milestone: ---

Hello!

I'm unable to compile gcc-snapshot on debian sid sparc64.

...
+===GNAT BUG DETECTED==+
| 8.0.0 20170520 (experimental) [trunk revision 248308] (sparc64-linux-gnu) |
| Storage_Error stack overflow or erroneous memory access  |
| Error detected at s-finroo.ads:44:4  |
| Please submit a bug report; see https://gcc.gnu.org/bugs/ .  |
| Use a subject line meaningful to you and us to track the bug.|
| Include the entire contents of this bug box in the report.   |
| Include the exact command that you entered.  |
| Also include sources listed below.   |
+==+

Please include these source files with error report
Note that list may not be accurate in some cases,
so please double check that the problem can still
be reproduced with the set of files listed.
Consider also -gnatd.n switch (see debug.adb).

system.ads
a-btgbso.adb
a-btgbso.ads
a-crbltr.ads
a-contai.ads
ada.ads
a-conhel.ads
a-finali.ads
s-finroo.ads
s-atocou.ads
a-rbtgbo.ads
a-stream.ads
a-tags.ads
s-stoele.ads
s-exctab.ads
s-stalib.ads
a-unccon.ads
s-soflin.ads
a-except.ads
s-parame.ads
s-traent.ads
s-stache.ads

compilation abandoned


Example of a full compilation log could be found at 
https://buildd.debian.org/status/fetch.php?pkg=gcc-snapshot&arch=sparc64&ver=20170520-1&stamp=1495313191&raw=0

I'm getting the same error message on my box (debian sparc64 sid), same
gcc-snapshot version.

[Bug c++/80896] New: [[nodiscard]] is ignored for functions returning references

2017-05-27 Thread iamsupermouse at mail dot ru
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80896

Bug ID: 80896
   Summary: [[nodiscard]] is ignored for functions returning
references
   Product: gcc
   Version: 7.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: iamsupermouse at mail dot ru
  Target Milestone: ---

Following produces no warnings:

int x = 42;
[[nodiscard]] int &func() {return x;}

int main() {func();}

But removing the `&` brings the warning back. (`warning: ignoring return value
of '…', declared with attribute nodiscard [-Wunused-result]`)

No flags are needed to reproduce. -Wall, -Wextra, -pedantic-errors, or
-std=c++17 change nothing.

  g++ --version
g++ (i686-posix-dwarf-rev0, Built by MinGW-W64 project) 7.1.0
Copyright (C) 2017 Free Software Foundation, Inc.
This is free software; see the source for copying conditions.  There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.

[Bug tree-optimization/80894] [8 Regression] 456.hmmer in SPEC CPU 2006 is miscompiled

2017-05-27 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80894

--- Comment #3 from Marc Glisse  ---
I built the latest version of hmmer from upstream on x86_64-linux and make
check succeeded. I did it again with -O2 -ffast-math -funsigned-char in CFLAGS,
and got a single failure in sse-utest both with my patch and before.

[Bug tree-optimization/80894] [8 Regression] 456.hmmer in SPEC CPU 2006 is miscompiled

2017-05-27 Thread glisse at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80894

--- Comment #2 from Marc Glisse  ---
Is there a way I can reproduce that? I don't think I have access to SPEC. Would
using a regular upstream hmmer work? Is that just running make test? Or do you
have before/after dumps?

[Bug bootstrap/80887] gnat bootstrap fails at s-regpat.o: raised STORAGE_ERROR : stack overflow or erroneous memory access

2017-05-27 Thread jakub at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80887

--- Comment #7 from Jakub Jelinek  ---
Author: jakub
Date: Sat May 27 07:46:12 2017
New Revision: 248533

URL: https://gcc.gnu.org/viewcvs?rev=248533&root=gcc&view=rev
Log:
PR bootstrap/80887
2017-05-25  Marc Glisse  

* match.pd ((A +- CST1) +- CST2): Allow some conversions.

* gcc.dg/tree-ssa/addadd.c: Xfail all scan-tree-dump*.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/match.pd
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/addadd.c