[Bug c++/80650] New: #pragma do not control -Wcpp
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
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
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
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
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
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
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
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
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
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
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
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#
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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)
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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.