[Bug c++/80650] New: #pragma do not control -Wcpp

2017-05-05 Thread akim.demaille at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80650

Bug ID: 80650
   Summary: #pragma do not control -Wcpp
   Product: gcc
   Version: 7.0.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: akim.demaille at gmail dot com
  Target Milestone: ---

Hi!

When compiling C, -Wcpp can be controlled by the diagnostics pragmas, but not
in C++ mode.

$ cat bar.c
#pragma GCC diagnostic ignored "-Wcpp"
#warning Foo

int i;
$ gcc-mp-7 -c bar.c
$ cp bar.c bar.cc
$ g++-mp-7 -c bar.c
bar.c:2:2: warning: #warning Foo [-Wcpp]
 #warning Foo
  ^~~

$ g++-mp-7 --version
g++-mp-7 (MacPorts gcc7 7-20170420_0) 7.0.1 20170420 (prerelease)
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.

I have observed this with 4.9, 5.5, 6.2 and 7.0.

Cheers!

[Bug c++/80648] [DR903] Valid C++11 null pointer constant (1-1) is rejected

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

Andrew Pinski  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |INVALID
Summary|Valid C++11 null pointer|[DR903] Valid C++11 null
   |constant (1-1) is rejected  |pointer constant (1-1) is
   ||rejected

--- Comment #1 from Andrew Pinski  ---
http://open-std.org/JTC1/SC22/WG21/docs/cwg_defects.html#903

Defect report in this case applies explicitly to C++11.

[Bug tree-optimization/80647] vectorized loop crashes from wrongly assuming 16 byte alignment

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

Andrew Pinski  changed:

   What|Removed |Added

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

--- Comment #1 from Andrew Pinski  ---
  pintsrc = (int*)src;
  pintdest = (int*)dst;

src and dst are not 4 byte aligned here?  This is a bug in your code due to
that.  -fsantizer=undefined will catch these at runtime IIRC.

[Bug c++/80648] New: Valid C++11 null pointer constant (1-1) is rejected

2017-05-05 Thread Keith.S.Thompson at gmail dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80648

Bug ID: 80648
   Summary: Valid C++11 null pointer constant (1-1) is rejected
   Product: gcc
   Version: 7.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: Keith.S.Thompson at gmail dot com
  Target Milestone: ---

I'm using g++ 7.1.0, built from source, on Ubuntu 16.10 x86_64.

$ g++ --version
g++ (GCC) 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.

$ uname -a
Linux bomb20 4.8.0-46-generic #49-Ubuntu SMP Fri Mar 31 13:57:14 UTC 2017
x86_64 x86_64 x86_64 GNU/Linux
$

Test case:

int main() {
void *p = 1-1;
}

When compiled with "g++ -std=c++03 -pedantic c.cpp", the compiler correctly
doesn't complain; likewise with -std=c++98.

With "g++ -std=c++11 -pedantic", it produces an error message:

c.cpp: In function ‘int main()’:
c.cpp:2:16: error: invalid conversion from ‘int’ to ‘void*’ [-fpermissive]
 void *p = 1-1;
   ~^~

And the same message with "g++ -std=c++14 -pedantic".

C++14 restricted the definition of a null pointer constant.  In the
N4296 draft, 4.10p1 [conv.ptr] says:

"A null pointer constant is an integer literal (2.13.2) with value
zero or a prvalue of type std::nullptr_t."

1-1 is not an integer literal, so the error message is correct for C++14.

But C++11 had not yet made that change.  The C++11 standard,
ISO/IEC 14882:2011(E), in the corresponding section, says:

"A null pointer constant is an integral constant expression (5.19)
prvalue of integer type that evaluates to zero or a prvalue of type
std::nullptr_t."

g++ correctly accepts 1-1 as a null pointer constant in C++98
and C++03 modes, and correctly rejects it in C++14 mode, but it
should accept it in C++11 mode.

(I do not of course suggest that using 1-1 as a null pointer constant
is a good idea.)

[Bug tree-optimization/80647] New: vectorized loop crashes from wrongly assuming 16 byte alignment

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

Bug ID: 80647
   Summary: vectorized loop crashes from wrongly assuming 16 byte
alignment
   Product: gcc
   Version: 6.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: tree-optimization
  Assignee: unassigned at gcc dot gnu.org
  Reporter: yzhang1985 at gmail dot com
  Target Milestone: ---

Created attachment 41328
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41328&action=edit
compiling with -O3 will reproduce the crash

I'm getting a crash for a function that extracts a sub region of an image
in-place. I compile with gcc -O3, which vectorizes the inner most loop,

while (twd--)
{
  *pintdest++ = *pintsrc++;
}


---assembly-
movdqa (%r10,%rax,1),%xmm0
add$0x1,%ecx
movups %xmm0,(%rdx,%rax,1)


It crashes on movdqa because the address isn't aligned. It should be using
unaligned vector loads like movdqu or lddqu instead.

I tested it with GCC 4.8 which did vectorize the loop correctly.


Starting with Nehalem, there is no penalty for using unaligned loads/stores if
the vector doesn't span 2 cache lines, so why not always generate unaligned
loads/stores? 

It used to be that the other advantage to exploit for aligned data was to fuse
the vector load/store with another instruction, reducing machine code size. But
even that alignment restriction for memory operands was relaxed starting with
SandyBridge's VEX instructions.

[Bug target/80636] AVX / AVX512 register-zeroing should always use AVX 128b, not ymm or zmm

2017-05-05 Thread peter at cordes dot ca
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80636

--- Comment #2 from Peter Cordes  ---
> The same possibly applies to all "zero-extending" moves?

Yes, if a  vmovdqa %xmm0,%xmm1  will work, it's the best choice on AMD CPUs,
and doesn't hurt on Intel CPUs.  So in any case where you need to copy a
register, and the upper lane(s) are known to be zero.

If you're copying just to zero the upper lane, you don't have a choice (if you
don't know that the source reg's upper lane is zeroed).

In general, when all else is equal, use narrower vectors.  (e.g. in a
horizontal sum, the first step should be vextractf128 to reduce down to 128b
vectors.)

---

Quoting the Bulldozer section of Agner Fog's microarch.pdf (section 18.10
Bulldozer AVX):

> 128-bit register-to-register moves have zero latency, while 256-bit 
> register-to-register
> moves have a latency of 2 clocks plus a penalty of 2-3 clocks for using a 
> different
> domain (see below) on Bulldozer and Piledriver.

---

On Ryzen: the low 128-bit lane is renamed with zero latency, but the upper lane
needs an execution unit.

Despite this, vectorizing with 256b *is* worth it on Ryzen, because the core is
so wide and decodes double-uop instructions efficiently.  Also, AVX 3-operand
instructions make moves rarer.

---

On Jaguar: 128b moves (with implicit zeroing of the upper lane) are 1 uop, 256b
moves are 2 uops.  128b moves from zeroed registers are eliminated (no
execution port, but still have to decode/issue/retire).

David Kanter's writeup (http://www.realworldtech.com/jaguar/4/) explains that
the PRF has an "is-zero" bit which can be set efficiently.  This is how 128b
moves are able to zero the upper lane of the destination in the rename stage,
without using an extra uop.  (And to avoid needing an execution port for
xor-zeroing uops).

[Bug ipa/53896] nonreturning function suggested as 'pure' candidate

2017-05-05 Thread eggert at gnu dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53896

--- Comment #3 from Paul Eggert  ---
(In reply to Martin Liška from comment #2)
> it's still up to user to mark the function as pure.

Thanks for looking into it. We have worked around the problem in GNU Emacs by
avoiding the -Wsuggest-attribute=pure option. It might be helpful to document
this limitation of -Wsuggest-attribute=pure, and perhaps the option should even
be deprecated due to its limited utility.

[Bug debug/80646] New: [Regression] wrong type info for extern inline function when compiling Emacs

2017-05-05 Thread eggert at gnu dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80646

Bug ID: 80646
   Summary: [Regression] wrong type info for extern inline
function when compiling Emacs
   Product: gcc
   Version: 6.3.1
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: debug
  Assignee: unassigned at gcc dot gnu.org
  Reporter: eggert at gnu dot org
  Target Milestone: ---

Created attachment 41327
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41327&action=edit
gzipped tarball of three source files illustrating the bug

GCC 6.3.1 x86-64 20161221 (Red Hat 6.3.1-1) outputs incorrect debug information
for inline functions in some cases, and this can make programs hard to debug.
The problem does not occur for GCC 4.8.5 20150623 (Red Hat 4.8.5-11), so this
appears to be a regression.

I ran into the problem while attempting to debug GNU Emacs, and constructed a
small test case to illustrate it. To reproduce it on Fedora 25 x86-64 with
6.3.1 20161221, extract the files lisp.h, t.c and u.c from the attached
tarball, and compile them by running the shell command:

gcc -g3 -O2 t.c u.c

Then use GDB as follows:

$ gdb a.out
...
(gdb) ptype make_number
type = int ()
(gdb) ptype make_natnum
type = struct {
long i;
} (long)
(gdb) ptype XIL
type = struct {
long i;
} (long)
(gdb)

The reported type of 'make_number' is incorrect: it should be the same type as
that of make_natnum and XIL, but instead is a function returning 'int'. This
incorrect type can cause GDB to print incorrect results in expressions
involving make_number. Looking at the assembly-language output, it appears that
GCC is generating the wrong debug information for this example.

[Bug sanitizer/80349] [6 Regression] UBSAN: compile time crash with "type mismatch in binary expression" message

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

--- Comment #16 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:55:29 2017
New Revision: 247702

URL: https://gcc.gnu.org/viewcvs?rev=247702&root=gcc&view=rev
Log:
Backported from mainline
2017-04-12  Jakub Jelinek  

PR sanitizer/80349
* fold-const.c (fold_binary_loc) : Convert arg0's
first argument to type.

* g++.dg/ubsan/pr80349.C: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/ubsan/pr80349.C
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/fold-const.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug rtl-optimization/80501] [6 Regression] Wrong code w/ a signed char, a shift, and a conversion to int

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

--- Comment #13 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:56:08 2017
New Revision: 247703

URL: https://gcc.gnu.org/viewcvs?rev=247703&root=gcc&view=rev
Log:
Backported from mainline
2017-04-25  Jakub Jelinek  

PR rtl-optimization/80501
* combine.c (make_compound_operation_int): Set subreg_code to SET
even for AND with mask of the sign bit of mode.

* gcc.c-torture/execute/pr80501.c: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.c-torture/execute/pr80501.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/combine.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug rtl-optimization/80385] [5/6 Regression] Segfault in commutative_operand_precedence() rtlanal.c:3373

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

--- Comment #7 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:54:52 2017
New Revision: 247701

URL: https://gcc.gnu.org/viewcvs?rev=247701&root=gcc&view=rev
Log:
Backported from mainline
2017-04-11  Jakub Jelinek  

PR rtl-optimization/80385
* simplify-rtx.c (simplify_unary_operation_1): Don't transform
(not (neg X)) into (plus X -1) for complex or non-integral modes.

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

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/opt/pr80385.C
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/simplify-rtx.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug libgomp/80394] Empty OpenMP task is wrongly removed when optimizing

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

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:54:06 2017
New Revision: 247700

URL: https://gcc.gnu.org/viewcvs?rev=247700&root=gcc&view=rev
Log:
Backported from mainline
2017-04-11  Jakub Jelinek  

PR libgomp/80394
* omp-low.c (scan_omp_task): Don't optimize away empty tasks
if they have any depend clauses.

* testsuite/libgomp.c/pr80394.c: New test.

Added:
branches/gcc-6-branch/libgomp/testsuite/libgomp.c/pr80394.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/omp-low.c
branches/gcc-6-branch/libgomp/ChangeLog

[Bug c++/80363] #'vec_cond_expr' not supported by dump_expr#

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

--- Comment #3 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:53:18 2017
New Revision: 247699

URL: https://gcc.gnu.org/viewcvs?rev=247699&root=gcc&view=rev
Log:
Backported from mainline
2017-04-11  Jakub Jelinek  

PR c++/80363
* error.c (dump_expr): Handle VEC_COND_EXPR like COND_EXPR.

* g++.dg/ext/pr80363.C: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/ext/pr80363.C
Modified:
branches/gcc-6-branch/gcc/cp/ChangeLog
branches/gcc-6-branch/gcc/cp/error.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug c++/80176] [5/6 Regression] cannot bind reference to static member function using object access expression

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

--- Comment #5 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:52:40 2017
New Revision: 247698

URL: https://gcc.gnu.org/viewcvs?rev=247698&root=gcc&view=rev
Log:
Backported from mainline
2017-04-10  Jakub Jelinek  

PR c++/80176
* tree.c (lvalue_kind): For COMPONENT_REF with BASELINK second
operand, if it is a static member function, recurse on the
BASELINK.

* g++.dg/init/ref23.C: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/init/ref23.C
Modified:
branches/gcc-6-branch/gcc/cp/ChangeLog
branches/gcc-6-branch/gcc/cp/tree.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug c++/80297] [6 Regression] Compiler time crash: type mismatch in binary expression

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

--- Comment #12 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:52:00 2017
New Revision: 247697

URL: https://gcc.gnu.org/viewcvs?rev=247697&root=gcc&view=rev
Log:
Backported from mainline
2017-04-04  Jakub Jelinek  
Richard Biener  

PR c++/80297
* genmatch.c (capture::gen_transform): For GENERIC unshare_expr
captures used multiple times, except for the last use.
* generic-match-head.c: Include gimplify.h.

* g++.dg/torture/pr80297.C: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/torture/pr80297.C
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/generic-match-head.c
branches/gcc-6-branch/gcc/genmatch.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug target/80286] [5/6 Regression] AVX2 _mm_cvtsi128_si32 doesn't return a proper 32bits int

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

--- Comment #10 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:51:14 2017
New Revision: 247696

URL: https://gcc.gnu.org/viewcvs?rev=247696&root=gcc&view=rev
Log:
Backported from mainline
2017-04-04  Jakub Jelinek  

PR target/80286
* config/i386/i386.c (ix86_expand_args_builtin): If op has scalar
int mode, convert_modes it to mode as unsigned, otherwise use
lowpart_subreg to mode rather than SImode.
* config/i386/sse.md (ashr3,
ashr3, ashr3, 3):
Use DImode instead of SImode for the shift count operand.
* config/i386/mmx.md (mmx_ashr3, mmx_3):
Likewise.

* gcc.target/i386/avx-pr80286.c: New test.
* gcc.dg/pr80286.c: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr80286.c
branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/avx-pr80286.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/config/i386/i386.c
branches/gcc-6-branch/gcc/config/i386/mmx.md
branches/gcc-6-branch/gcc/config/i386/sse.md
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug debug/80321] [7 regression] infinite recursion with inlining of nested function and debug info

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

--- Comment #5 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:50:27 2017
New Revision: 247695

URL: https://gcc.gnu.org/viewcvs?rev=247695&root=gcc&view=rev
Log:
Backported from mainline
2017-04-13  Jakub Jelinek  

PR debug/80321
* dwarf2out.c (decls_for_scope): Ignore declarations of
current_function_decl in BLOCK_NONLOCALIZED_VARS.

* gcc.dg/debug/pr80321.c: New test.

2017-03-31  Jakub Jelinek  

PR debug/79255
* dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
a FUNCTION_DECL, pass it as decl instead of origin to
process_scope_var.

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

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.dg/debug/pr80321.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr79255.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/dwarf2out.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug bootstrap/79255] [6 Regression] PGO bootstrap fails on x86_64/ppc64le building Ada

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

--- Comment #11 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:50:27 2017
New Revision: 247695

URL: https://gcc.gnu.org/viewcvs?rev=247695&root=gcc&view=rev
Log:
Backported from mainline
2017-04-13  Jakub Jelinek  

PR debug/80321
* dwarf2out.c (decls_for_scope): Ignore declarations of
current_function_decl in BLOCK_NONLOCALIZED_VARS.

* gcc.dg/debug/pr80321.c: New test.

2017-03-31  Jakub Jelinek  

PR debug/79255
* dwarf2out.c (decls_for_scope): If BLOCK_NONLOCALIZED_VAR is
a FUNCTION_DECL, pass it as decl instead of origin to
process_scope_var.

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

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.dg/debug/pr80321.c
branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr79255.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/dwarf2out.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug sanitizer/79572] [6 Regression] reference binding to null pointer not reported with -fsanitize=undefined

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

--- Comment #15 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:49:20 2017
New Revision: 247694

URL: https://gcc.gnu.org/viewcvs?rev=247694&root=gcc&view=rev
Log:
Backported from mainline
2017-03-31  Jakub Jelinek  

PR c++/79572
* c-ubsan.h (ubsan_maybe_instrument_reference): Change argument to
tree *.
* c-ubsan.c (ubsan_maybe_instrument_reference): Likewise.  Handle
not just NOP_EXPR to REFERENCE_TYPE, but also INTEGER_CST with
REFERENCE_TYPE.

* cp-gimplify.c (cp_genericize_r): Sanitize INTEGER_CSTs with
REFERENCE_TYPE.  Adjust ubsan_maybe_instrument_reference caller
for NOP_EXPR to REFERENCE_TYPE.

* g++.dg/ubsan/null-8.C: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/ubsan/null-8.C
Modified:
branches/gcc-6-branch/gcc/c-family/ChangeLog
branches/gcc-6-branch/gcc/c-family/c-ubsan.c
branches/gcc-6-branch/gcc/c-family/c-ubsan.h
branches/gcc-6-branch/gcc/cp/ChangeLog
branches/gcc-6-branch/gcc/cp/cp-gimplify.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug debug/80025] [5/6 Regression] ICE w/ -O2 (-O3, -Ofast) -g -ftracer (infinite recursion in rtx_equal_for_cselib_1)

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

--- Comment #16 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:48:02 2017
New Revision: 247693

URL: https://gcc.gnu.org/viewcvs?rev=247693&root=gcc&view=rev
Log:
Backported from mainline
2017-03-31  Jakub Jelinek  

PR debug/80025
* cselib.c (cselib_hasher::equal): Pass 0 to rtx_equal_for_cselib_1.
(rtx_equal_for_cselib_1): Add depth argument.  If depth
is 128, don't look up VALUE locs and punt.  Increment
depth in recursive calls when walking VALUE locs.

* gcc.dg/torture/pr80025.c: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr80025.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/cselib.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug sanitizer/80168] [5/6 Regression] ICE in make_decl_rtl, at varasm.c:1311 w/ VLA and -fsanitize=address

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

--- Comment #8 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:45:42 2017
New Revision: 247691

URL: https://gcc.gnu.org/viewcvs?rev=247691&root=gcc&view=rev
Log:
Backported from mainline
2017-03-27  Jakub Jelinek  

PR sanitizer/80168
* asan.c (instrument_derefs): Copy over last operand from
original COMPONENT_REF to the new COMPONENT_REF with
DECL_BIT_FIELD_REPRESENTATIVE.
* ubsan.c (instrument_object_size): Likewise.

* gcc.dg/asan/pr80168.c: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.dg/asan/pr80168.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/asan.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog
branches/gcc-6-branch/gcc/ubsan.c

[Bug rtl-optimization/80112] [5/6 Regression] ICE in doloop_condition_get at loop-doloop.c:158

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

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:44:21 2017
New Revision: 247690

URL: https://gcc.gnu.org/viewcvs?rev=247690&root=gcc&view=rev
Log:
Backported from mainline
2017-03-24  Jakub Jelinek  

PR rtl-optimization/80112
* loop-doloop.c (doloop_condition_get): Don't check condition
if cmp isn't SET with IF_THEN_ELSE src.

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

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr80112.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/loop-doloop.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug c++/80141] ICE with pragma omp declare

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

--- Comment #5 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:43:38 2017
New Revision: 247689

URL: https://gcc.gnu.org/viewcvs?rev=247689&root=gcc&view=rev
Log:
Backported from mainline
2017-03-22  Jakub Jelinek  

PR c++/80141
* semantics.c (finish_omp_clause) : Call maybe_constant_value only when not
processing_template_decl.

* g++.dg/gomp/pr80141.C: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/gomp/pr80141.C
Modified:
branches/gcc-6-branch/gcc/cp/ChangeLog
branches/gcc-6-branch/gcc/cp/semantics.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug c++/80129] wrong code with ternary struct assignment to const

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

--- Comment #7 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:42:51 2017
New Revision: 247688

URL: https://gcc.gnu.org/viewcvs?rev=247688&root=gcc&view=rev
Log:
Backported from mainline
2017-03-22  Jakub Jelinek  

PR c++/80129
* gimplify.c (gimplify_modify_expr_rhs) : Clear
TREE_READONLY on result if writing it more than once.

* g++.dg/torture/pr80129.C: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/torture/pr80129.C
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/gimplify.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug c/80097] internal compiler error in c_fully_fold_internal with std=c89 and -fsanitize=float-divide-by-zero

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

--- Comment #8 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:42:05 2017
New Revision: 247687

URL: https://gcc.gnu.org/viewcvs?rev=247687&root=gcc&view=rev
Log:
Backported from mainline
2017-03-21  Jakub Jelinek  

PR c/80097
* c-typeck.c (build_binary_op): Add EXCESS_PRECISION_EXPR only around
optional COMPOUND_EXPR with ubsan instrumentation.

* gcc.dg/ubsan/pr80097.c: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.dg/ubsan/pr80097.c
Modified:
branches/gcc-6-branch/gcc/c/ChangeLog
branches/gcc-6-branch/gcc/c/c-typeck.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug c++/79896] [5/6 Regression] ICE in gimplify_expr, at gimplify.c:11950 on non-int128 target

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

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:41:16 2017
New Revision: 247686

URL: https://gcc.gnu.org/viewcvs?rev=247686&root=gcc&view=rev
Log:
Backported from mainline
2017-03-10  Jakub Jelinek  

PR c++/79896
* decl.c (finish_enum_value_list): If value is error_mark_node,
don't copy it and change its type.
* init.c (constant_value_1): Return error_mark_node if DECL_INITIAL
of CONST_DECL is error_mark_node.

* g++.dg/ext/int128-5.C: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/ext/int128-5.C
Modified:
branches/gcc-6-branch/gcc/cp/ChangeLog
branches/gcc-6-branch/gcc/cp/decl.c
branches/gcc-6-branch/gcc/cp/init.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug sanitizer/79944] asan: incorrect instrumentation of atomic operations

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

--- Comment #9 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:40:10 2017
New Revision: 247685

URL: https://gcc.gnu.org/viewcvs?rev=247685&root=gcc&view=rev
Log:
Backported from mainline
2017-03-09  Jakub Jelinek  

PR sanitizer/79944
* asan.c (get_mem_refs_of_builtin_call): For BUILT_IN_ATOMIC* and
BUILT_IN_SYNC*, determine the access type from the size suffix and
always build a MEM_REF with that type.  Handle forgotten
BUILT_IN_SYNC_FETCH_AND_NAND_16 and BUILT_IN_SYNC_NAND_AND_FETCH_16.

* c-c++-common/asan/pr79944.c: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/c-c++-common/asan/pr79944.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/asan.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug target/79932] _mm512_packus_epi32 does not compile under -O0

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

--- Comment #7 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:39:18 2017
New Revision: 247684

URL: https://gcc.gnu.org/viewcvs?rev=247684&root=gcc&view=rev
Log:
Backported from mainline
2017-03-09  Jakub Jelinek  

PR target/79932
* config/i386/avx512vlintrin.h (_mm256_cmpge_epi32_mask,
_mm256_cmpge_epi64_mask, _mm256_cmpge_epu32_mask,
_mm256_cmpge_epu64_mask, _mm256_cmple_epi32_mask,
_mm256_cmple_epi64_mask, _mm256_cmple_epu32_mask,
_mm256_cmple_epu64_mask, _mm256_cmplt_epi32_mask,
_mm256_cmplt_epi64_mask, _mm256_cmplt_epu32_mask,
_mm256_cmplt_epu64_mask, _mm256_cmpneq_epi32_mask,
_mm256_cmpneq_epi64_mask, _mm256_cmpneq_epu32_mask,
_mm256_cmpneq_epu64_mask, _mm256_mask_cmpge_epi32_mask,
_mm256_mask_cmpge_epi64_mask, _mm256_mask_cmpge_epu32_mask,
_mm256_mask_cmpge_epu64_mask, _mm256_mask_cmple_epi32_mask,
_mm256_mask_cmple_epi64_mask, _mm256_mask_cmple_epu32_mask,
_mm256_mask_cmple_epu64_mask, _mm256_mask_cmplt_epi32_mask,
_mm256_mask_cmplt_epi64_mask, _mm256_mask_cmplt_epu32_mask,
_mm256_mask_cmplt_epu64_mask, _mm256_mask_cmpneq_epi32_mask,
_mm256_mask_cmpneq_epi64_mask, _mm256_mask_cmpneq_epu32_mask,
_mm256_mask_cmpneq_epu64_mask, _mm_cmpge_epi32_mask,
_mm_cmpge_epi64_mask, _mm_cmpge_epu32_mask, _mm_cmpge_epu64_mask,
_mm_cmple_epi32_mask, _mm_cmple_epi64_mask, _mm_cmple_epu32_mask,
_mm_cmple_epu64_mask, _mm_cmplt_epi32_mask, _mm_cmplt_epi64_mask,
_mm_cmplt_epu32_mask, _mm_cmplt_epu64_mask, _mm_cmpneq_epi32_mask,
_mm_cmpneq_epi64_mask, _mm_cmpneq_epu32_mask, _mm_cmpneq_epu64_mask,
_mm_mask_cmpge_epi32_mask, _mm_mask_cmpge_epi64_mask,
_mm_mask_cmpge_epu32_mask, _mm_mask_cmpge_epu64_mask,
_mm_mask_cmple_epi32_mask, _mm_mask_cmple_epi64_mask,
_mm_mask_cmple_epu32_mask, _mm_mask_cmple_epu64_mask,
_mm_mask_cmplt_epi32_mask, _mm_mask_cmplt_epi64_mask,
_mm_mask_cmplt_epu32_mask, _mm_mask_cmplt_epu64_mask,
_mm_mask_cmpneq_epi32_mask, _mm_mask_cmpneq_epi64_mask,
_mm_mask_cmpneq_epu32_mask, _mm_mask_cmpneq_epu64_mask): Move
definitions outside of __OPTIMIZE__ guarded section.

* gcc.target/i386/pr79932-2.c: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr79932-2.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/config/i386/avx512vlintrin.h
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug target/79932] _mm512_packus_epi32 does not compile under -O0

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

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:38:35 2017
New Revision: 247683

URL: https://gcc.gnu.org/viewcvs?rev=247683&root=gcc&view=rev
Log:
Backported from mainline
2017-03-09  Jakub Jelinek  

PR target/79932
* config/i386/avx512bwintrin.h (_mm512_packs_epi32,
_mm512_maskz_packs_epi32, _mm512_mask_packs_epi32,
_mm512_packus_epi32, _mm512_maskz_packus_epi32,
_mm512_mask_packus_epi32): Move definitions outside of __OPTIMIZE__
guarded section.

* gcc.target/i386/pr79932-1.c: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr79932-1.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/config/i386/avx512bwintrin.h
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug c/79940] [6 Regression] OpenMP pragma - internal compiler error with taskloop

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

--- Comment #8 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:37:47 2017
New Revision: 247682

URL: https://gcc.gnu.org/viewcvs?rev=247682&root=gcc&view=rev
Log:
Backported from mainline
2017-03-08  Jakub Jelinek  

PR c/79940
* gimplify.c (gimplify_omp_for): Replace index var in outer
taskloop statement with an artificial variable and add
OMP_CLAUSE_PRIVATE clause for it.

* testsuite/libgomp.c/pr79940.c: New test.

Added:
branches/gcc-6-branch/libgomp/testsuite/libgomp.c/pr79940.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/gimplify.c
branches/gcc-6-branch/libgomp/ChangeLog

[Bug rtl-optimization/79901] ICE in prepare_cmp_insn, at optabs.c:3904

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

--- Comment #8 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:36:54 2017
New Revision: 247681

URL: https://gcc.gnu.org/viewcvs?rev=247681&root=gcc&view=rev
Log:
Backported from mainline
2017-03-07  Jakub Jelinek  

PR rtl-optimization/79901
* config/i386/sse.md (*avx512bw_3): Renamed to
...
(*avx512f_3): ... this.
(3 with maxmin code iterator): Use VI8_AVX2_AVX512F
iterator instead of VI8_AVX2_AVX512BW.

* gcc.target/i386/pr79901.c: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr79901.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/config/i386/sse.md
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug rtl-optimization/79901] ICE in prepare_cmp_insn, at optabs.c:3904

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

--- Comment #7 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:35:58 2017
New Revision: 247680

URL: https://gcc.gnu.org/viewcvs?rev=247680&root=gcc&view=rev
Log:
Backported from mainline
2017-03-07  Jakub Jelinek  

PR rtl-optimization/79901
* expr.c (expand_expr_real_2): For vector MIN/MAX, if there is no
min/max expander, expand it using expand_vec_cond_expr.

Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/expr.c

[Bug target/79807] [5/6 Regression] ICE in extract_insn, at recog.c:2311 (error: unrecognizable insn)

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

--- Comment #5 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:35:28 2017
New Revision: 247679

URL: https://gcc.gnu.org/viewcvs?rev=247679&root=gcc&view=rev
Log:
Backported from mainline
2017-03-03  Jakub Jelinek  

PR target/79807
* config/i386/i386.c (ix86_expand_multi_arg_builtin): If target
is a memory operand, increase num_memory.
(ix86_expand_args_builtin): Likewise.

* gcc.target/i386/pr79807.c: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr79807.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/config/i386/i386.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug c++/79681] [6 Regression] ICE with constexpr and bitfield

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

--- Comment #9 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:34:36 2017
New Revision: 247678

URL: https://gcc.gnu.org/viewcvs?rev=247678&root=gcc&view=rev
Log:
Backported from mainline
2017-03-01  Jakub Jelinek  

PR c++/79681
* fold-const.c (make_bit_field_ref): If orig_inner is COMPONENT_REF,
attempt to use its first operand as BIT_FIELD_REF base.

* g++.dg/cpp1y/constexpr-79681-1.C: New test.
* g++.dg/cpp1y/constexpr-79681-2.C: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/cpp1y/constexpr-79681-1.C
branches/gcc-6-branch/gcc/testsuite/g++.dg/cpp1y/constexpr-79681-2.C
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/fold-const.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug target/79729] [5/6 Regression] ICE in ix86_print_operand, at config/i386/i386.c:18231

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

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:33:43 2017
New Revision: 247677

URL: https://gcc.gnu.org/viewcvs?rev=247677&root=gcc&view=rev
Log:
Backported from mainline
2017-02-28  Jakub Jelinek  

PR target/79729
* config/i386/i386.c (ix86_print_operand) : Replace
gcc_unreachable with output_operand_lossage.

* gcc.target/i386/pr79729.c: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr79729.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/config/i386/i386.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug middle-end/79396] [5/6 Regression] ICE (verify_flow_info failed) with -fnon-call-exceptions -O2 -march=haswell

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

--- Comment #17 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:32:50 2017
New Revision: 247676

URL: https://gcc.gnu.org/viewcvs?rev=247676&root=gcc&view=rev
Log:
Backported from mainline
2017-02-25  Jakub Jelinek  

PR middle-end/79396
* tree-eh.c (operation_could_trap_p, stmt_could_throw_1_p): Handle
FMA_EXPR like tcc_binary or tcc_unary.

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

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/opt/pr79396.C
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/testsuite/ChangeLog
branches/gcc-6-branch/gcc/tree-eh.c

[Bug c++/79664] ICE with #pragma omp parallel in constexpr function

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

--- Comment #4 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:31:37 2017
New Revision: 247675

URL: https://gcc.gnu.org/viewcvs?rev=247675&root=gcc&view=rev
Log:
Backported from mainline
2017-02-22  Jakub Jelinek  

PR c++/79664
* parser.c (cp_parser_omp_teams, cp_parser_omp_target): Use
SET_EXPR_LOCATION on OMP_TARGET/OMP_TEAMS tree.
* constexpr.c (potential_constant_expression_1): Handle
OMP_*, OACC_* and CILK_* trees.

* g++.dg/cpp1y/constexpr-throw.C: Adjust expected diagnostic location.
* g++.dg/gomp/pr79664.C: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/gomp/pr79664.C
Modified:
branches/gcc-6-branch/gcc/cp/ChangeLog
branches/gcc-6-branch/gcc/cp/constexpr.c
branches/gcc-6-branch/gcc/cp/parser.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog
branches/gcc-6-branch/gcc/testsuite/g++.dg/cpp1y/constexpr-throw.C

[Bug c++/79639] [6 Regression] ICE with -O and constexpr

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

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:30:03 2017
New Revision: 247674

URL: https://gcc.gnu.org/viewcvs?rev=247674&root=gcc&view=rev
Log:
Backported from mainline
2017-02-21  Jakub Jelinek  

PR c++/79639
* constexpr.c (cxx_eval_store_expression): If *valp is a PTRMEM_CST,
call cplus_expand_constant on it first.

* g++.dg/cpp1y/constexpr-79639.C: New test. 

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/cpp1y/constexpr-79639.C
Modified:
branches/gcc-6-branch/gcc/cp/ChangeLog
branches/gcc-6-branch/gcc/cp/constexpr.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug target/79570] [5/6 Regression] ICE in sel-sched-ir.c:4534 in pr69956.c

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

--- Comment #12 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:29:10 2017
New Revision: 247673

URL: https://gcc.gnu.org/viewcvs?rev=247673&root=gcc&view=rev
Log:
Backported from mainline
2017-02-21  Jakub Jelinek  

PR target/79570
* sel-sched.c (moveup_expr_cached): Don't call sel_bb_head
on temporarily removed DEBUG_INSNs.

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

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr79570.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/sel-sched.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug c++/79641] [5/6 Regression] ICE with const variable and attribute

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

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:28:09 2017
New Revision: 247672

URL: https://gcc.gnu.org/viewcvs?rev=247672&root=gcc&view=rev
Log:
Backported from mainline
2017-02-21  Jakub Jelinek  

PR c++/79641
* c-common.c (handle_mode_attribute): Use build_qualified_type to
preserve quals.

* c-c++-common/pr79641.c: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/c-c++-common/pr79641.c
Modified:
branches/gcc-6-branch/gcc/c-family/ChangeLog
branches/gcc-6-branch/gcc/c-family/c-common.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug target/79494] [5/6 Regression] ICE in maybe_record_trace_start, at dwarf2cfi.c:2330

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

--- Comment #7 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:27:17 2017
New Revision: 247670

URL: https://gcc.gnu.org/viewcvs?rev=247670&root=gcc&view=rev
Log:
Backported from mainline
2017-02-21  Jakub Jelinek  

PR target/79494
* config/i386/i386.c (ix86_expand_split_stack_prologue): Call
make_reg_eh_region_note_nothrow_nononlocal on call_insn.
* config/rs6000/rs6000.c: Include except.h.
(rs6000_expand_split_stack_prologue): Call
make_reg_eh_region_note_nothrow_nononlocal on the call insn.

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

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr79494.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/config/i386/i386.c
branches/gcc-6-branch/gcc/config/rs6000/rs6000.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug target/79568] ICE in extract_insn, at recog.c:2311 for pr70325.c (with -mavx512bw)

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

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:25:59 2017
New Revision: 247669

URL: https://gcc.gnu.org/viewcvs?rev=247669&root=gcc&view=rev
Log:
Backported from mainline
2017-02-20  Jakub Jelinek  

PR target/79568
* config/i386/i386.c (ix86_expand_builtin): Handle
OPTION_MASK_ISA_AVX512VL and OPTION_MASK_ISA_64BIT in
ix86_builtins_isa[fcode].isa as a requirement of those
flags and any other flag in the bitmask.
(ix86_init_mmx_sse_builtins): Use 0 instead of
~OPTION_MASK_ISA_64BIT as mask.
* config/i386/i386-builtin.def (bdesc_special_args,
bdesc_args): Likewise.

* gcc.target/i386/pr79568-1.c: New test.
* gcc.target/i386/pr79568-2.c: New test.
* gcc.target/i386/pr79568-3.c: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr79568-1.c
branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr79568-2.c
branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr79568-3.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/config/i386/i386.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug target/79559] [5/6 Regression] ICE in ix86_print_operand, at config/i386/i386.c:18189

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

--- Comment #8 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:24:50 2017
New Revision: 247668

URL: https://gcc.gnu.org/viewcvs?rev=247668&root=gcc&view=rev
Log:
Backported from mainline
2017-02-18  Jakub Jelinek  

PR target/79559
* config/i386/i386.c (ix86_print_operand): Use output_operand_lossage
instead of gcc_assert for K, r and R code checks.  Formatting fixes.

* gcc.target/i386/pr79559.c: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/gcc.target/i386/pr79559.c
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/config/i386/i386.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug c++/79512] [6 Regression] ICE: Segfault in gimple_build_call_1, at gimple.c:218

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

--- Comment #6 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 21:23:09 2017
New Revision: 247667

URL: https://gcc.gnu.org/viewcvs?rev=247667&root=gcc&view=rev
Log:
Backported from mainline
2017-02-16  Jakub Jelinek  

PR c++/79512
* c-parser.c (c_parser_omp_target): For -fopenmp-simd
ignore #pragma omp target even when not followed by identifier.

* parser.c (cp_parser_omp_target): For -fopenmp-simd
ignore #pragma omp target even when not followed by identifier.

* c-c++-common/gomp/pr79512.c: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/c-c++-common/gomp/pr79512.c
Modified:
branches/gcc-6-branch/gcc/c/ChangeLog
branches/gcc-6-branch/gcc/c/c-parser.c
branches/gcc-6-branch/gcc/cp/ChangeLog
branches/gcc-6-branch/gcc/cp/parser.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug fortran/80121] Memory leak with derived-type intent(out) argument

2017-05-05 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80121

janus at gcc dot gnu.org changed:

   What|Removed |Added

   Target Milestone|8.0 |7.2

[Bug fortran/68800] Fortran FE produces many memory leaks

2017-05-05 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68800
Bug 68800 depends on bug 80121, which changed state.

Bug 80121 Summary: Memory leak with derived-type intent(out) argument
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80121

   What|Removed |Added

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

[Bug fortran/80121] Memory leak with derived-type intent(out) argument

2017-05-05 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80121

janus at gcc dot gnu.org changed:

   What|Removed |Added

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

--- Comment #15 from janus at gcc dot gnu.org ---
Fix on trunk and 7-branch (for GCC 7.2). Closing.

[Bug fortran/80121] Memory leak with derived-type intent(out) argument

2017-05-05 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80121

--- Comment #14 from janus at gcc dot gnu.org ---
Author: janus
Date: Fri May  5 21:00:53 2017
New Revision: 247662

URL: https://gcc.gnu.org/viewcvs?rev=247662&root=gcc&view=rev
Log:
2017-05-05  Janus Weil  

Backport from trunk
PR fortran/80121
* trans-expr.c (gfc_conv_procedure_call): Deallocate the components
of allocatable intent(out) arguments.


2017-05-05  Janus Weil  

Backport from trunk
PR fortran/80121
* gfortran.dg/intent_out_9.f90: New test case.

Added:
branches/gcc-7-branch/gcc/testsuite/gfortran.dg/intent_out_9.f90
Modified:
branches/gcc-7-branch/gcc/fortran/ChangeLog
branches/gcc-7-branch/gcc/fortran/trans-expr.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog

[Bug target/79202] On Power8, consider using vupkhsw/xxpermdi to sign extend an int in a vector register instead of mfvsrwz/mtvsrwa

2017-05-05 Thread meissner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79202

--- Comment #6 from Michael Meissner  ---
Author: meissner
Date: Fri May  5 20:21:15 2017
New Revision: 247657

URL: https://gcc.gnu.org/viewcvs?rev=247657&root=gcc&view=rev
Log:
[gcc]
2017-05-05  Michael Meissner  

PR target/79038
PR target/79202
PR target/79203
* config/rs6000/rs6000.md (u code attribute): Add FIX and
UNSIGNED_FIX.
(extendsi2): Add support for doing sign extension via
VUPKHSW and XXPERMDI if the value is in Altivec registers and we
don't have ISA 3.0 instructions.
(extendsi2 splitter): Likewise.
(fix_truncsi2): If we are at ISA 2.07 (VSX small integer),
generate the normal insns since SImode can now go in vector
registers.  Disallow the special UNSPECs needed for previous
machines to hide SImode being used.  Add new insns
fctiw{,w}__smallint if SImode can go in vector registers.
(fix_truncsi2_stfiwx): Likewise.
(fix_truncsi2_internal): Likewise.
(fixuns_truncsi2): Likewise.
(fixuns_truncsi2_stfiwx): Likewise.
(fctiwz__smallint): Likewise.
(fctiwz__mem): New combiner pattern to prevent conversion
of floating point to 32-bit integer from doing a direct move to
the GPR registers to do a store.
(fctiwz_): Break long line.

[gcc/testsuite]
2017-05-05  Michael Meissner  

PR target/79038
PR target/79202
PR target/79203
* gcc.target/powerpc/ppc-round3.c: New test.
* gcc.target/powerpc/ppc-round2.c: Update expected code.


Added:
trunk/gcc/testsuite/gcc.target/powerpc/ppc-round3.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.md
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/powerpc/ppc-round2.c

[Bug target/79038] Improve PowerPC ISA 3.0 conversion between integers and hardware _Float128

2017-05-05 Thread meissner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79038

--- Comment #7 from Michael Meissner  ---
Author: meissner
Date: Fri May  5 20:21:15 2017
New Revision: 247657

URL: https://gcc.gnu.org/viewcvs?rev=247657&root=gcc&view=rev
Log:
[gcc]
2017-05-05  Michael Meissner  

PR target/79038
PR target/79202
PR target/79203
* config/rs6000/rs6000.md (u code attribute): Add FIX and
UNSIGNED_FIX.
(extendsi2): Add support for doing sign extension via
VUPKHSW and XXPERMDI if the value is in Altivec registers and we
don't have ISA 3.0 instructions.
(extendsi2 splitter): Likewise.
(fix_truncsi2): If we are at ISA 2.07 (VSX small integer),
generate the normal insns since SImode can now go in vector
registers.  Disallow the special UNSPECs needed for previous
machines to hide SImode being used.  Add new insns
fctiw{,w}__smallint if SImode can go in vector registers.
(fix_truncsi2_stfiwx): Likewise.
(fix_truncsi2_internal): Likewise.
(fixuns_truncsi2): Likewise.
(fixuns_truncsi2_stfiwx): Likewise.
(fctiwz__smallint): Likewise.
(fctiwz__mem): New combiner pattern to prevent conversion
of floating point to 32-bit integer from doing a direct move to
the GPR registers to do a store.
(fctiwz_): Break long line.

[gcc/testsuite]
2017-05-05  Michael Meissner  

PR target/79038
PR target/79202
PR target/79203
* gcc.target/powerpc/ppc-round3.c: New test.
* gcc.target/powerpc/ppc-round2.c: Update expected code.


Added:
trunk/gcc/testsuite/gcc.target/powerpc/ppc-round3.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.md
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/powerpc/ppc-round2.c

[Bug target/79203] Update PowerPC double->int conversions to know about -mvsx-small-integer

2017-05-05 Thread meissner at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79203

--- Comment #2 from Michael Meissner  ---
Author: meissner
Date: Fri May  5 20:21:15 2017
New Revision: 247657

URL: https://gcc.gnu.org/viewcvs?rev=247657&root=gcc&view=rev
Log:
[gcc]
2017-05-05  Michael Meissner  

PR target/79038
PR target/79202
PR target/79203
* config/rs6000/rs6000.md (u code attribute): Add FIX and
UNSIGNED_FIX.
(extendsi2): Add support for doing sign extension via
VUPKHSW and XXPERMDI if the value is in Altivec registers and we
don't have ISA 3.0 instructions.
(extendsi2 splitter): Likewise.
(fix_truncsi2): If we are at ISA 2.07 (VSX small integer),
generate the normal insns since SImode can now go in vector
registers.  Disallow the special UNSPECs needed for previous
machines to hide SImode being used.  Add new insns
fctiw{,w}__smallint if SImode can go in vector registers.
(fix_truncsi2_stfiwx): Likewise.
(fix_truncsi2_internal): Likewise.
(fixuns_truncsi2): Likewise.
(fixuns_truncsi2_stfiwx): Likewise.
(fctiwz__smallint): Likewise.
(fctiwz__mem): New combiner pattern to prevent conversion
of floating point to 32-bit integer from doing a direct move to
the GPR registers to do a store.
(fctiwz_): Break long line.

[gcc/testsuite]
2017-05-05  Michael Meissner  

PR target/79038
PR target/79202
PR target/79203
* gcc.target/powerpc/ppc-round3.c: New test.
* gcc.target/powerpc/ppc-round2.c: Update expected code.


Added:
trunk/gcc/testsuite/gcc.target/powerpc/ppc-round3.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/rs6000/rs6000.md
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.target/powerpc/ppc-round2.c

[Bug fortran/80392] [5/6/7/8 Regression] [OOP] ICE with allocatable polymorphic function result in a procedure pointer component

2017-05-05 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80392

janus at gcc dot gnu.org changed:

   What|Removed |Added

 Status|ASSIGNED|RESOLVED
 Resolution|--- |FIXED
   Target Milestone|7.2 |5.5

--- Comment #11 from janus at gcc dot gnu.org ---
Fixed on trunk and all active release branches (for the upcoming releases 5.5,
6.4, 7.2 and 8.0). Closing.

[Bug fortran/80260] [7/8 Regression] ICE with polymorphic array section actual argument

2017-05-05 Thread damian at sourceryinstitute dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80260

--- Comment #3 from Damian Rouson  ---
The same code causes an ICE with the 7.1.0 release. Is there a fix on the 8
branch or any related updates?

[Bug fortran/80392] [5/6/7/8 Regression] [OOP] ICE with allocatable polymorphic function result in a procedure pointer component

2017-05-05 Thread janus at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80392

--- Comment #10 from janus at gcc dot gnu.org ---
Author: janus
Date: Fri May  5 20:09:20 2017
New Revision: 247655

URL: https://gcc.gnu.org/viewcvs?rev=247655&root=gcc&view=rev
Log:
2017-05-05  Janus Weil  

Backport from trunk
PR fortran/80392
* trans-types.c (gfc_get_derived_type): Prevent an infinite loop when
building a derived type that includes a procedure pointer component
with a polymorphic result.

2017-05-05  Janus Weil  

Backport from trunk
PR fortran/80392
* gfortran.dg/proc_ptr_comp_49.f90: New test case.

Added:
branches/gcc-7-branch/gcc/testsuite/gfortran.dg/proc_ptr_comp_49.f90
Modified:
branches/gcc-7-branch/gcc/fortran/ChangeLog
branches/gcc-7-branch/gcc/fortran/trans-types.c
branches/gcc-7-branch/gcc/testsuite/ChangeLog

[Bug c++/80635] std::optional and bogus -Wmaybe-uninitialized warning

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

--- Comment #11 from Marc Glisse  ---
(In reply to Jonathan Wakely from comment #8)
> Something like __builtin_unreachable() to say "trust me" would be nice, but
> I can't think how to do it.

Some __builtin_unreachable() in _M_get might (?) be useful even if it doesn't
help with the destructor issue. Or some assertion for debug mode, since the
comment above says "The _M_get operations have _M_engaged as a precondition"...

(In reply to Jonathan Wakely from comment #10)
> Sadly I have no better suggestion than -Wno-error=maybe-uninitialized

Move -Wmaybe-uninitialized from -Wall to -Wextra?

[Bug fortran/80645] New: [8 regression] FAIL: gfortran.dg/elemental_subroutine_3.f90 -O1 (test for excess errors)

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

Bug ID: 80645
   Summary: [8 regression] FAIL:
gfortran.dg/elemental_subroutine_3.f90   -O1  (test
for excess errors)
   Product: gcc
   Version: 8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: fortran
  Assignee: unassigned at gcc dot gnu.org
  Reporter: sch...@linux-m68k.org
  Target Milestone: ---
Target: m68k-*-*

$ gcc/gfortran -Bgcc/ ../gcc/testsuite/gfortran.dg/elemental_subroutine_3.f90
-O -S
../gcc/testsuite/gfortran.dg/elemental_subroutine_3.f90:37:0:

x(4:1:-1) = x((/1,3,2,4/))

Warning: ‘__builtin_memcpy’ reading 16 bytes from a region of size 12
[-Wstringop-overflow=]

From the original dump:

parm.11.dtype = 297;
parm.11.dim[0].lbound = 0;
parm.11.dim[0].ubound = 3;
parm.11.dim[0].stride = -1;
parm.11.data = (void *) &x[3];
parm.11.offset = 0;

  D.958 = (void * restrict) __builtin_malloc (16);
  data.13 = (struct mytype *) D.958;
  (void) __builtin_memcpy ((void *) data.13, parm.11.data, 16);

[Bug testsuite/80643] NA->FAIL: gcc.dg/pr79214.c gcc.dg/pr79222.c gcc.dg/pr79223.c gcc.dg/tree-ssa/builtins-folding-gimple-ub.c

2017-05-05 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80643

Martin Sebor  changed:

   What|Removed |Added

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

--- Comment #3 from Martin Sebor  ---
The failures should be fixed in r247652
(https://gcc.gnu.org/ml/gcc-patches/2017-05/msg00443.html).

[Bug testsuite/80643] NA->FAIL: gcc.dg/pr79214.c gcc.dg/pr79222.c gcc.dg/pr79223.c gcc.dg/tree-ssa/builtins-folding-gimple-ub.c

2017-05-05 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80643

Martin Sebor  changed:

   What|Removed |Added

 CC||seurer at gcc dot gnu.org

--- Comment #2 from Martin Sebor  ---
*** Bug 80644 has been marked as a duplicate of this bug. ***

[Bug middle-end/80644] [8 regression] many test cases fails starting with 247622

2017-05-05 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80644

Martin Sebor  changed:

   What|Removed |Added

 Status|UNCONFIRMED |RESOLVED
 Resolution|--- |DUPLICATE

--- Comment #1 from Martin Sebor  ---
I must have messed something up when I committed the change last night.  I'm
looking into it (please see bug 80643 for status).

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

[Bug testsuite/80643] NA->FAIL: gcc.dg/pr79214.c gcc.dg/pr79222.c gcc.dg/pr79223.c gcc.dg/tree-ssa/builtins-folding-gimple-ub.c

2017-05-05 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80643

Martin Sebor  changed:

   What|Removed |Added

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

--- Comment #1 from Martin Sebor  ---
I see some of the same failures even on x86_64 where I tested.  Something must
have gone wrong with the commit last night.  Let me look into it.

[Bug middle-end/80644] New: [8 regression] many test cases fails starting with 247622

2017-05-05 Thread seurer at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80644

Bug ID: 80644
   Summary: [8 regression] many test cases fails starting with
247622
   Product: gcc
   Version: 8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: middle-end
  Assignee: unassigned at gcc dot gnu.org
  Reporter: seurer at gcc dot gnu.org
  Target Milestone: ---

All these tests fail now on powerpc64 LE.  From the details it looks like they
all are triggering overflow warnings from -Wstringop-overflow=.

> FAIL: gcc.dg/pr78138.c  (test for warnings, line 23)
> FAIL: gcc.dg/pr78138.c (test for excess errors)
> FAIL: gcc.dg/pr79214.c  (test for warnings, line 25)
> FAIL: gcc.dg/pr79214.c  (test for warnings, line 30)
> FAIL: gcc.dg/pr79214.c  (test for warnings, line 35)
> FAIL: gcc.dg/pr79214.c  (test for warnings, line 40)
> FAIL: gcc.dg/pr79214.c  (test for warnings, line 45)
> FAIL: gcc.dg/pr79214.c  (test for warnings, line 52)
> FAIL: gcc.dg/pr79214.c  (test for warnings, line 59)
> FAIL: gcc.dg/pr79214.c  (test for warnings, line 66)
> FAIL: gcc.dg/pr79214.c  (test for warnings, line 73)
> FAIL: gcc.dg/pr79214.c  (test for warnings, line 80)
> FAIL: gcc.dg/pr79214.c (test for excess errors)
> FAIL: gcc.dg/pr79222.c  (test for warnings, line 12)
> FAIL: gcc.dg/pr79222.c (test for excess errors)
> FAIL: gcc.dg/pr79223.c  (test for warnings, line 26)
> FAIL: gcc.dg/pr79223.c  (test for warnings, line 31)
> FAIL: gcc.dg/pr79223.c  (test for warnings, line 36)
> FAIL: gcc.dg/pr79223.c (test for excess errors)
> FAIL: gcc.dg/tree-ssa/builtins-folding-gimple-ub.c (test for excess errors)
> FAIL: gfortran.dg/elemental_subroutine_3.f90   -O1  (test for excess errors)
> FAIL: gfortran.dg/elemental_subroutine_3.f90   -O2  (test for excess errors)
> FAIL: gfortran.dg/elemental_subroutine_3.f90   -O3 -fomit-frame-pointer 
> -funroll-loops -fpeel-loops -ftracer -finline-functions  (test for excess 
> errors)
> FAIL: gfortran.dg/elemental_subroutine_3.f90   -O3 -g  (test for excess 
> errors)
> FAIL: gfortran.dg/elemental_subroutine_3.f90   -Os  (test for excess errors)
> FAIL: gfortran.dg/mvbits_7.f90   -O0   (test for warnings, line 28)


Some details below

spawn /home/seurer/gcc/build/gcc-trunk/gcc/xgcc
-B/home/seurer/gcc/build/gcc-trunk/gcc/
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr78138.c
-fno-diagnostics-show-caret -fdiagnostics-color=never -O2 -Wformat-overflow -S
-o pr78138.s
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr78138.c: In function 'f':
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr78138.c:15:3: warning:
'strcpy': writing between 6 and 7 bytes into a region of size 5 overflows the
destination [-Wstringop-overflow=]
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr78138.c: In function 'g':
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr78138.c:23:3: warning:
'memcpy': writing between 7 and 32 bytes into a region of size 5 overflows the
destination [-Wstringop-overflow=]
output is:
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr78138.c: In function 'f':
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr78138.c:15:3: warning:
'strcpy': writing between 6 and 7 bytes into a region of size 5 overflows the
destination [-Wstringop-overflow=]
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr78138.c: In function 'g':
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr78138.c:23:3: warning:
'memcpy': writing between 7 and 32 bytes into a region of size 5 overflows the
destination [-Wstringop-overflow=]

PASS: gcc.dg/pr78138.c  (test for warnings, line 15)
FAIL: gcc.dg/pr78138.c  (test for warnings, line 23)
FAIL: gcc.dg/pr78138.c (test for excess errors)
Excess errors:
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr78138.c:23:3: warning:
'memcpy': writing between 7 and 32 bytes into a region of size 5 overflows the
destination [-Wstringop-overflow=]


spawn /home/seurer/gcc/build/gcc-trunk/gcc/xgcc
-B/home/seurer/gcc/build/gcc-trunk/gcc/
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr79214.c
-fno-diagnostics-show-caret -fdiagnostics-color=never -O2 -S -o pr79214.s
In file included from
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr79214.c:6:0:
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr79214.c: In function
'test_bzero':
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr79214.c:25:3: warning:
'__builtin_bzero': writing 4 or more bytes into a region of size 3 overflows
the destination [-Wstringop-overflow=]
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr79214.c: In function
'test_memcpy':
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr79214.c:30:3: warning:
'__builtin_memcpy': writing 4 or more bytes into a region of size 3 overflows
the destination [-Wstringop-overflow=]
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr79214.c: In function
'test_memmove':
/home/seurer/gcc/gcc-trunk/gcc/testsuite/gcc.dg/pr79214.c:35:3: warning:
'__builtin_memmove': writing 4 or more bytes 

[Bug testsuite/77684] many tree-prof testsuite failures in parallel make check

2017-05-05 Thread andi-gcc at firstfloor dot org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77684

--- Comment #4 from Andi Kleen  ---
Thanks for tracing that down. 

So perf runs out of memory for the locked trace buffers

Increasing the limit is a good workaround
ulimit -l may also work, but also needs root.

We could just pass a smaller -m value to perf

Does it work when you change the last line in config/i386/gcc-auto-profile
to add -m 128k 

(or possibly other values, have to be power of two)

[Bug testsuite/80643] New: NA->FAIL: gcc.dg/pr79214.c gcc.dg/pr79222.c gcc.dg/pr79223.c gcc.dg/tree-ssa/builtins-folding-gimple-ub.c

2017-05-05 Thread thopre01 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80643

Bug ID: 80643
   Summary: NA->FAIL: gcc.dg/pr79214.c gcc.dg/pr79222.c
gcc.dg/pr79223.c
gcc.dg/tree-ssa/builtins-folding-gimple-ub.c
   Product: gcc
   Version: 8.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: testsuite
  Assignee: unassigned at gcc dot gnu.org
  Reporter: thopre01 at gcc dot gnu.org
CC: msebor at gcc dot gnu.org
  Target Milestone: ---
Target: arm-none-eabi

Hi,

The following testcases regressed or are new FAIL on arm-none-eabi targets
(such as -mcpu=cortex-m0, the last one FAILing only on that specific target) I
believe because of r247622:

NA->FAIL: gcc.dg/pr79214.c
NA->FAIL: gcc.dg/pr79222.c
NA->FAIL: gcc.dg/pr79223.c
PASS->FAIL: gcc.dg/tree-ssa/builtins-folding-gimple-ub.c
PASS->FAIL: c-c++-common/Wsizeof-pointer-memaccess2.c

Note that, unlike PASS->FAIL for gcc.dg/pr78138.c, the FAILs are still there if
I fix the obvious missing colon after the name of the function

The log for the errors is as follows:

NA->FAIL: gcc.dg/pr79214.c

In file included from gcc/gcc/testsuite/gcc.dg/pr79214.c:6:0:^M
gcc/gcc/testsuite/gcc.dg/pr79214.c: In function 'test_bzero':^M
gcc/gcc/testsuite/gcc.dg/pr79214.c:25:3: warning: '__builtin_bzero': writing 4
or more bytes into a region of size 3 overflows the destination
[-Wstringop-overflow=]^M
gcc/gcc/testsuite/gcc.dg/pr79214.c: In function 'test_memcpy':^M
gcc/gcc/testsuite/gcc.dg/pr79214.c:30:3: warning: '__builtin_memcpy': writing 4
or more bytes into a region of size 3 overflows the destination
[-Wstringop-overflow=]^M
gcc/gcc/testsuite/gcc.dg/pr79214.c: In function 'test_memmove':^M
gcc/gcc/testsuite/gcc.dg/pr79214.c:35:3: warning: '__builtin_memmove': writing
4 or more bytes into a region of size 3 overflows the destination
[-Wstringop-overflow=]^M
gcc/gcc/testsuite/gcc.dg/pr79214.c: In function 'test_mempcpy':^M
gcc/gcc/testsuite/gcc.dg/pr79214.c:40:3: warning: '__builtin_mempcpy': writing
4 or more bytes into a region of size 3 overflows the destination
[-Wstringop-overflow=]^M
gcc/gcc/testsuite/gcc.dg/pr79214.c: In function 'test_memset':^M
gcc/gcc/testsuite/gcc.dg/pr79214.c:45:3: warning: '__builtin_memset': writing 4
or more bytes into a region of size 3 overflows the destination
[-Wstringop-overflow=]^M
gcc/gcc/testsuite/gcc.dg/pr79214.c: In function 'test_strcat':^M
gcc/gcc/testsuite/gcc.dg/pr79214.c:52:3: warning: '__builtin_strcat': writing
between 4 and 5 bytes into a region of size 3 overflows the destination
[-Wstringop-overflow=]^M
gcc/gcc/testsuite/gcc.dg/pr79214.c: In function 'test_stpcpy':^M
gcc/gcc/testsuite/gcc.dg/pr79214.c:59:10: warning: '__builtin_stpcpy': writing
between 4 and 5 bytes into a region of size 3 overflows the destination
[-Wstringop-overflow=]^M
gcc/gcc/testsuite/gcc.dg/pr79214.c: In function 'test_stpncpy':^M
gcc/gcc/testsuite/gcc.dg/pr79214.c:66:10: warning: '__builtin_stpncpy': writing
4 or more bytes into a region of size 3 overflows the destination
[-Wstringop-overflow=]^M
gcc/gcc/testsuite/gcc.dg/pr79214.c: In function 'test_strcpy':^M
gcc/gcc/testsuite/gcc.dg/pr79214.c:73:10: warning: '__builtin_strcpy': writing
between 4 and 5 bytes into a region of size 3 overflows the destination
[-Wstringop-overflow=]^M
gcc/gcc/testsuite/gcc.dg/pr79214.c: In function 'test_strncpy':^M
gcc/gcc/testsuite/gcc.dg/pr79214.c:80:10: warning: '__builtin_strncpy': writing
4 or more bytes into a region of size 3 overflows the destination
[-Wstringop-overflow=]^M
gcc/gcc/testsuite/gcc.dg/pr79214.c: In function 'test_strncat':^M
gcc/gcc/testsuite/gcc.dg/pr79214.c:87:10: warning: '__builtin_strncat':
specified bound between 4 and 4294967295 exceeds destination size 3
[-Wstringop-overflow=]^M

NA->FAIL: gcc.dg/pr79222.c

gcc/gcc/testsuite/gcc.dg/pr79222.c: In function 'f':^M
gcc/gcc/testsuite/gcc.dg/pr79222.c:12:10: warning: 'stpcpy': writing between 9
and 11 bytes into a region of size 3 overflows the destination
[-Wstringop-overflow=]^M

NA->FAIL: gcc.dg/pr79223.c

gcc/gcc/testsuite/gcc.dg/pr79223.c: In function 'test_memcpy':^M
gcc/gcc/testsuite/gcc.dg/pr79223.c:26:3: warning: 'memcpy': writing 4 or more
bytes into a region of size 3 overflows the destination
[-Wstringop-overflow=]^M
gcc/gcc/testsuite/gcc.dg/pr79223.c: In function 'test_mempcpy':^M
gcc/gcc/testsuite/gcc.dg/pr79223.c:31:3: warning: 'mempcpy': writing 4 or more
bytes into a region of size 3 overflows the destination
[-Wstringop-overflow=]^M
gcc/gcc/testsuite/gcc.dg/pr79223.c: In function 'test_memmove':^M
gcc/gcc/testsuite/gcc.dg/pr79223.c:36:3: warning: 'memmove': writing 4 or more
bytes into a region of size 2 overflows the destination
[-Wstringop-overflow=]^M

PASS->FAIL: gcc.dg/tree-ssa/builtins-folding-gimple-ub.c

gcc/gcc/testsuite/gcc.dg/tree-ssa/builtins-folding-gimple-ub.c:15:7: warning:
'__builtin_memchr' reading 1000 bytes from a

[Bug c++/66139] destructor not called for members of partially constructed anonymous struct/array

2017-05-05 Thread carlo at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66139

Carlo Wood  changed:

   What|Removed |Added

 CC||carlo at gcc dot gnu.org
Version|4.9.2   |8.0

--- Comment #3 from Carlo Wood  ---
Still present in 7.x and 8 (HEAD).
clang does not show this behavior (no leak).

Possibly related:
https://wandbox.org/permlink/yJM4fr9Z9D8GN6on
which also shows different behavior from clang
(found on https://akrzemi1.wordpress.com/2017/04/27/a-serious-bug-in-gcc/)

Can anyone confirm that the keyword 'wrong-code' also
applies to that latter example?

[Bug tree-optimization/80632] [8 Regression] error: invalid PHI argument with -O2

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

--- Comment #7 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 16:02:44 2017
New Revision: 247642

URL: https://gcc.gnu.org/viewcvs?rev=247642&root=gcc&view=rev
Log:
PR tree-optimization/80632
* tree-switch-conversion.c (struct switch_conv_info): Add target_vop
field.
(build_arrays): Initialize it for virtual phis.
(fix_phi_nodes): Use it for virtual phis.

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

Added:
trunk/gcc/testsuite/gcc.dg/pr80632.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-switch-conversion.c

[Bug tree-optimization/80558] VRP not handling x & -2 well

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

Jakub Jelinek  changed:

   What|Removed |Added

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

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

[Bug tree-optimization/80558] VRP not handling x & -2 well

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

--- Comment #3 from Jakub Jelinek  ---
Author: jakub
Date: Fri May  5 15:43:22 2017
New Revision: 247641

URL: https://gcc.gnu.org/viewcvs?rev=247641&root=gcc&view=rev
Log:
PR tree-optimization/80558
* tree-vrp.c (extract_range_from_binary_expr_1): Optimize
[x, y] op z into [x op, y op z] for op & or | if conditions
are met.

* gcc.dg/tree-ssa/vrp115.c: New test.

Added:
trunk/gcc/testsuite/gcc.dg/tree-ssa/vrp115.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/tree-vrp.c

[Bug target/71607] [5/6/7/8 Regression] [ARM] ice due to forbidden enabled attribute dependency on instruction operands

2017-05-05 Thread thopre01 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71607

--- Comment #14 from Thomas Preud'homme  ---
Author: thopre01
Date: Fri May  5 15:41:28 2017
New Revision: 247640

URL: https://gcc.gnu.org/viewcvs?rev=247640&root=gcc&view=rev
Log:
[ARM] PR71607: Fix ICE when loading constant

2017-05-05  Andre Vieira  
Prakhar Bahuguna  

gcc/
PR target/71607
* config/arm/arm.md (use_literal_pool): Remove.
(64-bit immediate split): No longer takes cost into consideration
if arm_disable_literal_pool is enabled.
* config/arm/arm.c (arm_tls_referenced_p): Add diagnostic if TLS is
used when arm_disable_literal_pool is enabled.
(arm_max_const_double_inline_cost): Remove use of
arm_disable_literal_pool.
(push_minipool_fix): Add assert.
(arm_reorg): Add return if arm_disable_literal_pool is enabled.
* config/arm/vfp.md (no_literal_pool_df_immediate): New.
(no_literal_pool_sf_immediate): New.

2017-05-05  Andre Vieira  
Thomas Preud'homme  
Prakhar Bahuguna  

gcc/testsuite/
PR target/71607
* gcc.target/arm/thumb2-slow-flash-data.c: Renamed to ...
* gcc.target/arm/thumb2-slow-flash-data-1.c: ... this.
* gcc.target/arm/thumb2-slow-flash-data-2.c: New.
* gcc.target/arm/thumb2-slow-flash-data-3.c: New.
* gcc.target/arm/thumb2-slow-flash-data-4.c: New.
* gcc.target/arm/thumb2-slow-flash-data-5.c: New.
* gcc.target/arm/tls-disable-literal-pool.c: New.

Added:
trunk/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-1.c
  - copied, changed from r247638,
trunk/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data.c
trunk/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-2.c
trunk/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-3.c
trunk/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-4.c
trunk/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data-5.c
trunk/gcc/testsuite/gcc.target/arm/tls-disable-literal-pool.c
Removed:
trunk/gcc/testsuite/gcc.target/arm/thumb2-slow-flash-data.c
Modified:
trunk/gcc/ChangeLog
trunk/gcc/config/arm/arm.c
trunk/gcc/config/arm/arm.md
trunk/gcc/config/arm/vfp.md
trunk/gcc/testsuite/ChangeLog

[Bug target/77728] [5/6 Regression] Miscompilation multiple vector iteration on ARM

2017-05-05 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77728

--- Comment #57 from Marek Polacek  ---
Author: mpolacek
Date: Fri May  5 15:38:04 2017
New Revision: 247639

URL: https://gcc.gnu.org/viewcvs?rev=247639&root=gcc&view=rev
Log:
PR target/77728
* config/arm/arm.c: Include gimple.h.
(aapcs_layout_arg): Emit -Wpsabi note if arm_needs_doubleword_align
returns negative, increment ncrn if it returned non-zero.
(arm_needs_doubleword_align): Return int instead of bool,
ignore DECL_ALIGN of non-FIELD_DECL TYPE_FIELDS chain
members, but if there is any such non-FIELD_DECL
> PARM_BOUNDARY aligned decl, return -1 instead of false.
(arm_function_arg): Emit -Wpsabi note if arm_needs_doubleword_align
returns negative, increment nregs if it returned non-zero.
(arm_setup_incoming_varargs): Likewise.
(arm_function_arg_boundary): Emit -Wpsabi note if
arm_needs_doubleword_align returns negative, return
DOUBLEWORD_ALIGNMENT if it returned non-zero.

* g++.dg/abi/pr77728-1.C: New test.

Added:
branches/gcc-6-branch/gcc/testsuite/g++.dg/abi/pr77728-1.C
Modified:
branches/gcc-6-branch/gcc/ChangeLog
branches/gcc-6-branch/gcc/config/arm/arm.c
branches/gcc-6-branch/gcc/testsuite/ChangeLog

[Bug c++/80635] std::optional and bogus -Wmaybe-uninitialized warning

2017-05-05 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635

--- Comment #10 from Jonathan Wakely  ---
(In reply to Pedro Alves from comment #9)
> I had tried that last night, but unfortunately it couldn't get it to work,
> because the warning triggers in A, not optional.

Bah! When we want the warning location to be in our headers it's in user code
(like this case) and when we want it in user code it's in our headers (and so
suppressed, like Bug 58876).

Sadly I have no better suggestion than -Wno-error=maybe-uninitialized

[Bug c++/80635] std::optional and bogus -Wmaybe-uninitialized warning

2017-05-05 Thread palves at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635

--- Comment #9 from Pedro Alves  ---
> So maybe we just want to use a #pragma around the std::optional destructor to 
> suppress this warning.

I had tried that last night, but unfortunately it couldn't get it to work,
because the warning triggers in A, not optional.  Users of optional have
to put the #pragma around their the Ts (in this case A::~A()).  I.e., this
would work:

 #pragma GCC diagnostic push
 #pragma GCC diagnostic ignored "-Wmaybe-uninitialized"

 struct A
 {
   A () : m (get ()) {}
   ~A () { set (m); }  // warns here

   int m;
 };

 #pragma GCC diagnostic pop

I think as we'll use gdb/std::optional more and more, that would become too
unwildy/ugly.  My current workaround in gdb is -Wno-error=maybe-uninitialized:

[1] - https://sourceware.org/ml/gdb-patches/2017-05/msg00130.html

[Bug testsuite/77684] many tree-prof testsuite failures in parallel make check

2017-05-05 Thread mpolacek at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77684

Marek Polacek  changed:

   What|Removed |Added

 CC||mpolacek at gcc dot gnu.org

--- Comment #3 from Marek Polacek  ---
I'm still seeing this and it's extremely annoying, I gotta say.

[Bug testsuite/77684] many tree-prof testsuite failures in parallel make check

2017-05-05 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77684

Alexander Monakov  changed:

   What|Removed |Added

 CC||amonakov at gcc dot gnu.org,
   ||andi-gcc at firstfloor dot org

--- Comment #2 from Alexander Monakov  ---
Adding Andi Kleen to bug CC — what should be the way forward here? Somehow
limiting the parallelism degree of tests that invoke perf?

[Bug ada/80590] [ada] non-bootstrap build failure in ada -- Error reporting routines re-entered

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

--- Comment #9 from Dominique d'Humieres  ---
> Backtrace looks similar to PR 80556 comment 3. Problem in that PR also is
> with g-exptty.adb.

If it is a duplicate of pr80556, it should start at r247301.

[Bug c++/80641] Warning with std::vector resize in loop

2017-05-05 Thread msebor at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80641

Martin Sebor  changed:

   What|Removed |Added

   Keywords||diagnostic,
   ||missed-optimization
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-05-05
 CC||msebor at gcc dot gnu.org
   See Also||https://gcc.gnu.org/bugzill
   ||a/show_bug.cgi?id=79095
 Ever confirmed|0   |1

--- Comment #2 from Martin Sebor  ---
Confirmed.  The test case looks very similar to the one in bug 79095. 
Improving the optimizer to prevent emitting these excessive memsets is the
ideal goal but in the instances when they do end up in the code, Jeff and I
discussed replacing them with traps instead (for memset under an option so
applications that rely on Physical Address Extension can continue to do so).

[Bug c/80640] Missing memory side effect

2017-05-05 Thread nico...@morey-chaisemartin.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80640

--- Comment #6 from Nicolas Morey-Chaisemartin  
---
Ok. So there's something wrong :)
I'll make a work around for SUSE while waiting for a fix in GCC

[Bug c++/80635] std::optional and bogus -Wmaybe-uninitialized warning

2017-05-05 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635

--- Comment #8 from Jonathan Wakely  ---
Something like __builtin_unreachable() to say "trust me" would be nice, but I
can't think how to do it. So maybe we just want to use a #pragma around the
std::optional destructor to suppress this warning.

[Bug debug/80263] gcc's internal type "sizetype" leaks out as base type name in the DWARF info

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

Jakub Jelinek  changed:

   What|Removed |Added

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

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

[Bug c/80640] Missing memory side effect

2017-05-05 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80640

--- Comment #5 from Alexander Monakov  ---
I think the bug is that on x86 __atomic_thread_fence(x) is expanded into
nothing for x!=__ATOMIC_SEQ_CST, it should place a compiler barrier similar to
expansion of __atomic_signal_fence.

[Bug debug/80628] gcc 7.1.0 produces duplicate entries in .debug_gnu_pubtypes table

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

--- Comment #1 from George R.  ---
Created attachment 41326
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41326&action=edit
Preproccessed source file.

Added preprocessed source file.
Use:
1) gcc UnifyFunctionExitNodes.cpp -c -ggnu-pubnames -gsplit-dwarf
2) objdump UnifyFunctionExitNodes.o --dwarf=pubtypes
3) observe duplicates.

[Bug c/80640] Missing memory side effect

2017-05-05 Thread nico...@morey-chaisemartin.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80640

--- Comment #4 from Nicolas Morey-Chaisemartin  
---
I agree the volatile shoud fix thing> I'll have to see with the ompi guys to
fix that.

But shouldn't __atomic_thread_fence () have a side effect here and force the
memory to be reloaded ?
If it has no impact, what's the point ?

[Bug c/80640] Missing memory side effect

2017-05-05 Thread amonakov at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80640

Alexander Monakov  changed:

   What|Removed |Added

 Status|WAITING |UNCONFIRMED
 Ever confirmed|1   |0

--- Comment #3 from Alexander Monakov  ---
The issue boils down to just

void f(int *p)
{
  while (*p)
__atomic_thread_fence(2);
}

which with -O2 -fno-tree-ter is compiled to

f:
movl(%rdi), %eax# *p_3(D), _4
.L6:
testl   %eax, %eax  # _4
jne .L6 #,
rep ret

the .optimized dump looks as expected, but then __atomic_thread_fence(2) is
expanded into nothing, so the load is hoisted during RTL transforms.

Note that the source declares opal_list_next as

volatile struct opal_list_item_t *opal_list_next;

but the 'volatile' qualifier applies to the pointed-to struct, not the field
itself. If written as

volatile struct opal_list_item_t *volatile opal_list_next;

then the problematic hoisting does not happen.

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

2017-05-05 Thread prathamesh3492 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80613

--- Comment #9 from prathamesh3492 at gcc dot gnu.org ---
As suggested by Richard, the commit partially reverts r247407 by removing the
hunk from propagate_necessity().

Thanks,
Prathamesh

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

2017-05-05 Thread prathamesh3492 at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80613

--- Comment #8 from prathamesh3492 at gcc dot gnu.org ---
Author: prathamesh3492
Date: Fri May  5 13:21:28 2017
New Revision: 247635

URL: https://gcc.gnu.org/viewcvs?rev=247635&root=gcc&view=rev
Log:
2017-05-05  Prathamesh Kulkarni  

PR tree-optimization/80613
* tree-ssa-dce.c (propagate_necessity): Remove cases for
BUILT_IN_STRDUP and BUILT_IN_STRNDUP.

testsuite/
* gcc.dg/tree-ssa/pr79697.c (k): Remove.

Modified:
trunk/gcc/ChangeLog
trunk/gcc/testsuite/ChangeLog
trunk/gcc/testsuite/gcc.dg/tree-ssa/pr79697.c
trunk/gcc/tree-ssa-dce.c

[Bug target/80556] [8 Regression] bootstrap failure for Ada compiler

2017-05-05 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80556

Tom de Vries  changed:

   What|Removed |Added

 CC||vries at gcc dot gnu.org

--- Comment #9 from Tom de Vries  ---
PR80590 could be a non-darwin duplicate.

[Bug ada/80590] [ada] non-bootstrap build failure in ada -- Error reporting routines re-entered

2017-05-05 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80590

--- Comment #8 from Tom de Vries  ---
(In reply to Tom de Vries from comment #7)
> Backtrace from gdb is more complete:

Backtrace looks similar to PR 80556 comment 3. Problem in that PR also is with
g-exptty.adb.

[Bug ada/80590] [ada] non-bootstrap build failure in ada -- Error reporting routines re-entered

2017-05-05 Thread vries at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80590

--- Comment #7 from Tom de Vries  ---
Backtrace from gdb is more complete:
...
(gdb) bt
#0  0x767811e2 in ?? () from /lib/libc.so.6
#1  0x027412bd in libiberty_vprintf_buffer_size (format=0x2752b6b
"%s:%d["00"]", args=0x7fffbe70)
at src/libiberty/vprintf-support.c:105
#2  0x0274100f in xvasprintf (format=0x2752b6b "%s:%d["00"]",
args=0x7fffbe70)
at src/libiberty/xvasprintf.c:57
#3  0x02740c57 in xasprintf (fmt=0x2752b6b "%s:%d["00"]")
at src/libiberty/xasprintf.c:47
#4  0x008b7d51 in internal_error_function (context=0x3ba4da0
, 
msgid=0x2f9bf9f "in %s, at %s:%d["00"]", ap=0x7fffc220)
at src/gcc/ada/gcc-interface/misc.c:336
#5  0x026acb91 in diagnostic_report_diagnostic (context=0x3ba4da0
, 
diagnostic=0x7fffc120) at src/gcc/diagnostic.c:900
#6  0x026ad345 in diagnostic_impl(rich_location *, int, const char *,
va_list *, ) (
richloc=0x7fffc190, opt=-1, gmsgid=0x2f9bf9f "in %s, at %s:%d["00"]",
ap=0x7fffc220, kind=DK_ICE)
at src/gcc/diagnostic.c:1054
#7  0x026ae85f in internal_error (gmsgid=0x2f9bf9f "in %s, at
%s:%d["00"]")
at src/gcc/diagnostic.c:1365
#8  0x026aeae3 in fancy_abort (
file=0x2750690 "src/gcc/ada/raise.c["00"]", line=87, 
function=0x27507e0 <__gnat_eh_personality::__FUNCTION__>
"__gnat_eh_personality["00"]")
at src/gcc/diagnostic.c:1431
#9  0x0087ffee in __gnat_eh_personality ()
at src/gcc/ada/raise.c:87
#10 0x769eda43 in _Unwind_RaiseException (exc=0x3d0d2e0)
at /scratch/gcc/w/gcc-4.7.3/linux/gcc-2012.09-90/libgcc/unwind.inc:113
#11 0x0088124f in __gnat_Unwind_RaiseException (e=0x3d0d2e0)
at src/gcc/ada/raise-gcc.c:1426
#12 0x0094fc7a in
ada.exceptions.exception_propagation.propagate_gcc_exception
(gcc_exception=0x0)
at src/gcc/ada/a-exexpr.adb:322
#13 0x0094fcb1 in
ada.exceptions.exception_propagation.propagate_exception (excep=)
at src/gcc/ada/a-exexpr.adb:354
#14 0x0094fcd3 in ada.exceptions.complete_and_propagate_occurrence
(x=0x3d0d320)
at src/gcc/ada/a-except.adb:937
#15 0x00950ccc in <__gnat_raise_exception> (e=0x34fb4a0
, message=...)
at src/gcc/ada/a-except.adb:978
#16 0x00bca8e1 in rtsfind.load_fail (s=...,
u_id=system_relative_delays, id=ro_rd_delay_for)
at src/gcc/ada/rtsfind.adb:851
#17 0x00bcaad4 in rtsfind.load_rtu (u_id=system_relative_delays,
id=ro_rd_delay_for, use_setting=false)
at src/gcc/ada/rtsfind.adb:987
#18 0x00bcbbe9 in rtsfind.rte ()
at src/gcc/ada/rtsfind.adb:1380
#19 0x00bcc11d in rtsfind.rte_available (e=ro_rd_delay_for)
at src/gcc/ada/rtsfind.adb:1462
#20 0x00a749cb in exp_ch9.expand_n_delay_relative_statement (n=2465)
at src/gcc/ada/exp_ch9.adb:8068
#21 0x00adc8a4 in expander.expand (n=2465)
at src/gcc/ada/expander.adb:214
#22 0x00bff01b in sem.analyze (n=2465)
at src/gcc/ada/sem.adb:753
#23 0x00cb4f0b in sem_ch5.analyze_statements (l=-9959)
at src/gcc/ada/sem_ch5.adb:3613
#24 0x00cb1849 in sem_ch5.analyze_if_statement (n=2450)
at src/gcc/ada/sem_ch5.adb:1665
#25 0x00bfe7d1 in sem.analyze (n=2450)
at src/gcc/ada/sem.adb:306
#26 0x00cb4f0b in sem_ch5.analyze_statements (l=-9961)
at src/gcc/ada/sem_ch5.adb:3613
#27 0x00c3257f in sem_ch11.analyze_handled_statements (n=2449)
at src/gcc/ada/sem_ch11.adb:426
#28 0x00bfe79b in sem.analyze (n=2449)
at src/gcc/ada/sem.adb:297
#29 0x00cba9ee in sem_ch6.analyze_subprogram_body_helper ()
at src/gcc/ada/sem_ch6.adb:4245
#30 0x00cb9064 in sem_ch6.analyze_subprogram_body (n=2335)
at src/gcc/ada/sem_ch6.adb:2169
#31 0x00bfed78 in sem.analyze (n=2335)
at src/gcc/ada/sem.adb:547
#32 0x00c778f4 in sem_ch3.analyze_declarations (l=-9982)
at src/gcc/ada/sem_ch3.adb:2608
#33 0x00cca6c0 in sem_ch7.analyze_package_body_helper (n=2296)
at src/gcc/ada/sem_ch7.adb:786
#34 0x00cc9c9a in sem_ch7.analyze_package_body (n=2296)
at src/gcc/ada/sem_ch7.adb:178
#35 0x00bfeb0d in sem.analyze (n=2296)
at src/gcc/ada/sem.adb:444
#36 0x00c2899a in sem_ch10.analyze_compilation_unit (n=2269)
at src/gcc/ada/sem_ch10.adb:897
#37 0x00bfe4dd in sem.analyze (n=2269)
at src/gcc/ada/sem.adb:180
#38 0x00bffbe6 in sem.semantics.do_analyze ()
at src/gcc/ada/sem.adb:1338
#39 0x00c00026 in sem.semantics ()
at src/gcc/ada/sem.adb:1520
#40 0x00afa798 in frontend ()
at src/gcc/ada/frontend.adb:407
#41 0x00e0ae21 in gnat1drv ()
at src/gcc/ada/gnat1drv.adb:1127
#42 0x008b7694 in gnat_parse_file ()
at src/gcc/ada/gcc-interface/misc.c:122
#43 0x0159198a in compile_file ()
at src/gcc/toplev.c:467
#44 0x01593f94 in do_compile () at src/gcc/toplev.c

[Bug c++/80635] std::optional and bogus -Wmaybe-uninitialized warning

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

--- Comment #7 from Marc Glisse  ---
The warning comes from
  _Z3setiD.6701 (maybe_a$D6763$m_dummy_6);
which is protected by
  _9 = VIEW_CONVERT_EXPR(maybe_a$4_7);
  if (_9 != 0)
with
  # maybe_a$D6763$m_dummy_6 = PHI 
  # maybe_a$4_7 = PHI <0(6), 1(4)>

In this case, more aggressive threading would kill the possibility to call set
on something undefined (I believe Jeff was already looking into it for other
Wmaybe-uninitialized testcases). The warning is unstable because it depends on
fragile optimization results.

This isn't solvable in general anyway, Wmaybe-uninitialized has "maybe" for a
good reason.

[Bug c/80640] Missing memory side effect

2017-05-05 Thread nico...@morey-chaisemartin.com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80640

--- Comment #2 from Nicolas Morey-Chaisemartin  
---
Created attachment 41325
  --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=41325&action=edit
Test case

Previous tarball was too big. I stripped all debug info from the lib and it
should work now :)

[Bug c++/80642] lambdas made constexpr in cases where they don't satisfy the requirements for it

2017-05-05 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80642

Jonathan Wakely  changed:

   What|Removed |Added

   Keywords||rejects-valid
 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-05-05
 Ever confirmed|0   |1

[Bug c++/80642] New: lambdas made constexpr in cases where they don't satisfy the requirements for it

2017-05-05 Thread mathias at gaunard dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80642

Bug ID: 80642
   Summary: lambdas made constexpr in cases where they don't
satisfy the requirements for it
   Product: gcc
   Version: 7.1.0
Status: UNCONFIRMED
  Severity: normal
  Priority: P3
 Component: c++
  Assignee: unassigned at gcc dot gnu.org
  Reporter: mathias at gaunard dot com
  Target Milestone: ---

Since C++17, lambdas are automatically constexpr whenever they can.
It seems however that GCC 7.1 tries to make lambdas constexpr in cases where it
actually can not.

Testcase, built with -std=c++1z

#include 

int main()
{
[](auto&& i)
{
if(i)
{
std::array array;
return i + array.size();
}
return i;
}(std::size_t(0));
}

Expected behaviour: everything compiles fine

What I get instead:

test.cpp: In instantiation of ‘main():: [with auto:1 = long
unsigned int]’:
test.cpp:13:21:   required from here
test.cpp:9:33: error: uninitialized variable ‘array’ in ‘constexpr’ function
 std::array array;
 ^
In file included from test.cpp:1:0:
/usr/local/gcc-7.1.0/include/c++/7.1.0/array:94:12: note: ‘struct
std::array’ has no user-provided default constructor
 struct array
^
/usr/local/gcc-7.1.0/include/c++/7.1.0/array:110:56: note: and the
implicitly-defined constructor does not initialize ‘char std::array::_M_elems [4]’
   typename _AT_Type::_Type _M_elems;
^~~~

[Bug lto/63407] xsdcxx built with LTO aborts on xsd files of libkolabxml - when LTO is disabled problem is gone

2017-05-05 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63407

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2017-05-05
 CC||marxin at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #6 from Martin Liška  ---
Hi. Sorry for waiting for such a long time. Anyhow, unfortunately I can't build
and link the pre-processed files. However I can build openSUSE package with
-flto and I'll need a test-case how can I trigger the segmentation fault?

Can you please try to reproduce it with latest GCC?

[Bug middle-end/79665] gcc's signed (x*x)/200 is slower than clang's

2017-05-05 Thread wilco at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79665

--- Comment #17 from wilco at gcc dot gnu.org ---
(In reply to wilco from comment #16)
> (In reply to wilco from comment #14)
> > (In reply to PeteVine from comment #13)
> > > Still, the 5% regression must have happened very recently. The fast gcc 
> > > was
> > > built on 20170220 and the slow one yesterday, using the original patch. 
> > > Once
> > > again, switching away from Cortex-A53 codegen restores the expected
> > > performance.
> > 
> > The issue is due to inefficient code generated for unsigned modulo:
> > 
> > umull   x0, w0, w4
> > umull   x1, w1, w4
> > lsr x0, x0, 32
> > lsr x1, x1, 32
> > lsr w0, w0, 6
> > lsr w1, w1, 6
> > 
> > It seems the Cortex-A53 scheduler isn't modelling this correctly. When I
> > manually remove the redundant shifts I get a 15% speedup. I'll have a look.
> 
> See https://gcc.gnu.org/ml/gcc-patches/2017-04/msg01415.html

The redundant LSRs and SDIV are removed on latest trunk. Although my patch
above hasn't gone in, I get a 15% speedup on Cortex-A53 with -mcpu=cortex-a53
and 8% with -mcpu=cortex-a72.

[Bug c++/80635] std::optional and bogus -Wmaybe-uninitialized warning

2017-05-05 Thread palves at redhat dot com
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635

--- Comment #6 from Pedro Alves  ---
That kind of makes sense if you look at optional in isolation, but why does
it _not_ warn if you remove anything related to B and leave only A?  That's
what's truly mystifying to me.

Even this change makes the warning go away:

 void func ()
 {
   Optional maybe_a;
-  Optional maybe_b; // for some reason, need this here to trigger a
+  Optional maybe_b; // for some reason, need this here to trigger a
   // warning in _A_.

   maybe_a.emplace ();
   maybe_b.emplace (); // comment out, and the warning disappears.
 }

[Bug c++/80635] std::optional and bogus -Wmaybe-uninitialized warning

2017-05-05 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=80635

--- Comment #5 from Jonathan Wakely  ---
(In reply to Pedro Alves from comment #4)
> Looks like I over reduced in the minimal reproducer.  std::optional has a
> boolean field to track whether the contained object had been fully
> initialized, which is checked in the desctructor, but I removed it because
> its presence doesn't affect whether the warning is emitted.  Of course,
> std::optional has that field, but still, it warns.

I think the problem is that GCC isn't smart enough to infer the invariant that
the truthiness of the bool corresponds to the initialization of the member. So
the value of the bool is treated as unrelated to the (un)initialized state. By
inspecting all the accesses to the bool we can tell that's true, but the
compiler apparently can't. I don't know how we could state the invariant in
code.

[Bug libstdc++/54924] Warn for std::string constructor with wrong size

2017-05-05 Thread redi at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54924

--- Comment #12 from Jonathan Wakely  ---
Indeed, it's what allows us to use variadic templates in C++98 mode, for
example. And I don't think there's any way to use
__attribute__((__extension__)) on template parameter packs to do that
differently.

[Bug go/64238] ICE in get_partitioning_class, at symtab.c:1775

2017-05-05 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64238

--- Comment #3 from Martin Liška  ---
Ian can you please take a look?

[Bug go/64238] ICE in get_partitioning_class, at symtab.c:1775

2017-05-05 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64238

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |NEW
   Last reconfirmed||2017-05-05
 CC||cmang at google dot com,
   ||marxin at gcc dot gnu.org
  Component|lto |go
   Assignee|unassigned at gcc dot gnu.org  |ian at airs dot com
 Ever confirmed|0   |1
  Known to fail||6.3.0, 7.1.0, 8.0

--- Comment #2 from Martin Liška  ---
Confirmed, checking assert is triggered for:

Breakpoint 1, symtab_node::get_partitioning_class (this=0x769dab80) at
../../gcc/symtab.c:1866
1866  gcc_checking_assert (vnode->definition);
(gdb) p vnode->debug()
__go_tdn_unicode.SpecialCase$gc/164 (__go_tdn_unicode.SpecialCase$gc)
@0x769dab80
  Type: variable
  Body removed by symtab_remove_unreachable_nodes
  Visibility: public artificial
  References: 
  Referring:
__go_td_S6_._f.$fpv16_.go_bytes._case1pN19_unicode.SpecialCasexe$gc/40 (addr)
  Availability: not_available
  Varpool flags:
$3 = void
(gdb) bt
#0  symtab_node::get_partitioning_class (this=0x769dab80) at
../../gcc/symtab.c:1866
#1  0x00b7f8cd in lto_output_varpool_node (ob=,
ob=, encoder=0x2515e80, node=0x769dab80) at
../../gcc/lto-cgraph.c:615
#2  output_symtab () at ../../gcc/lto-cgraph.c:1026
#3  0x00b92ad3 in lto_output () at ../../gcc/lto-streamer-out.c:2390
#4  0x00c072bf in write_lto () at ../../gcc/passes.c:2582
#5  0x00c0b221 in ipa_write_summaries_1 (encoder=0x2515e80) at
../../gcc/passes.c:2646
#6  ipa_write_summaries () at ../../gcc/passes.c:2706
#7  0x008b3610 in ipa_passes () at ../../gcc/cgraphunit.c:2373
#8  symbol_table::compile (this=0x76864100) at ../../gcc/cgraphunit.c:2467
#9  0x008b5e18 in symbol_table::finalize_compilation_unit
(this=0x76864100) at ../../gcc/cgraphunit.c:2626
#10 0x00ce7f4a in compile_file () at ../../gcc/toplev.c:493
#11 0x0071ff6c in do_compile () at ../../gcc/toplev.c:2004
#12 toplev::main (this=this@entry=0x7fffdaf0, argc=,
argc@entry=17, argv=, argv@entry=0x7fffdbf8) at
../../gcc/toplev.c:2138
#13 0x00722489 in main (argc=17, argv=0x7fffdbf8) at
../../gcc/main.c:40

[Bug lto/64636] Bootstrapping gcc-4.9.2 fails if lto is enabled

2017-05-05 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64636

Martin Liška  changed:

   What|Removed |Added

 Status|UNCONFIRMED |WAITING
   Last reconfirmed||2017-05-05
 CC||marxin at gcc dot gnu.org
 Ever confirmed|0   |1

--- Comment #3 from Martin Liška  ---
Hi. Can you please test it with a new release of GCC? If yes, then please
attach the pre-processed file and regex.gcda file that's needed for
-fprofile-use.

[Bug ipa/53896] nonreturning function suggested as 'pure' candidate

2017-05-05 Thread marxin at gcc dot gnu.org
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53896

Martin Liška  changed:

   What|Removed |Added

 Status|NEW |RESOLVED
 Resolution|--- |WONTFIX

--- Comment #2 from Martin Liška  ---
Ok, after a discussion with Honza, we're not planning to fix that. As mentioned
in the warning info, it's still up to user to mark the function as pure. Having
a call to a noreturn function in a condition is tricky to handle by compiler.

  1   2   >