[Bug middle-end/78501] [7 regression] SEGV in vrp_val_max
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78501 --- Comment #2 from prathamesh3492 at gcc dot gnu.org --- Hi, From the trace, it seems ptrdiff_type_node is set to NULL for ada ? Either we can guard setting range for CFN_BUILTIN_STRLEN by checking ptrtdiff_type_node is non null, or make vrp_val_max return NULL if type is NULL. I am trying to reproduce on x86_64-unknown-linux-gnu. Thanks, Prathamesh
[Bug fortran/78279] ICE in identical_array_ref, at fortran/dependency.c:104
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78279 kargl at gcc dot gnu.org changed: What|Removed |Added Priority|P3 |P4
[Bug fortran/78279] ICE in identical_array_ref, at fortran/dependency.c:104
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78279 kargl at gcc dot gnu.org changed: What|Removed |Added CC||kargl at gcc dot gnu.org, ||tkoenig at netcologne dot de Assignee|unassigned at gcc dot gnu.org |kargl at gcc dot gnu.org --- Comment #2 from kargl at gcc dot gnu.org --- I have a patch unless Thomas has some other idea.
[Bug target/78458] [7 Regression] LRA ICE building libgcc for powerpc-linux-gnuspe e500v2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78458 --- Comment #13 from Peter Bergner --- Author: bergner Date: Thu Nov 24 02:07:51 2016 New Revision: 242818 URL: https://gcc.gnu.org/viewcvs?rev=242818=gcc=rev Log: gcc/ PR target/78458 * config/rs6000/rs6000.h (HARD_REGNO_CALLER_SAVE_MODE): Return MODE if it is at least NREGS wide. gcc/testsuite/ PR target/78458 * gcc.target/powerpc/pr78458.c: New. Added: trunk/gcc/testsuite/gcc.target/powerpc/pr78458.c Modified: trunk/gcc/ChangeLog trunk/gcc/config/rs6000/rs6000.h trunk/gcc/testsuite/ChangeLog
[Bug c++/78504] New: Bad fixit hint: '_Pragma' does not name a type; did you mean '_Pragma'?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78504 Bug ID: 78504 Summary: Bad fixit hint: '_Pragma' does not name a type; did you mean '_Pragma'? Product: gcc Version: 7.0 Status: UNCONFIRMED Keywords: diagnostic Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: redi at gcc dot gnu.org CC: dmalcolm at gcc dot gnu.org Target Milestone: --- g++ -c -x c++ - <<< '_Pragma(GCC system_header)' :1:9: error: _Pragma takes a parenthesized string literal :1:1: error: '_Pragma' does not name a type; did you mean '_Pragma'?
[Bug c/78503] New: -Wint-in-bool-context false positive on unsigned multiplication
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78503 Bug ID: 78503 Summary: -Wint-in-bool-context false positive on unsigned multiplication Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: msebor at gcc dot gnu.org Target Milestone: --- GCC issues a -Wint-in-bool-context warning on the following test case and suggests using the AND expression instead. The code is valid (it tries to avoid calling malloc with a zero argument) and the warning is a false positive. The suggestion to use the AND expression also isn't very helpful here (it's confusing). There is no obvious way the AND expression could be used while preserving the effects of the code. Changing expression to (n * sizeof (int) != 0) does avoid the warning. $ cat c.c && gcc -S -Wall c.c void f (void*); void g (unsigned n) { void *p = (n * sizeof (int)) ? __builtin_malloc (n * sizeof (n)) : 0; f (p); } c.c: In function ‘g’: c.c:5:16: warning: ‘*’ in boolean context, suggest ‘&&’ instead [-Wint-in-bool-context] void *p = (n * sizeof (int)) ? __builtin_malloc (n * sizeof (n)) : 0; ~~~^~~ Note that the test case has been distilled from a modified definition of the XALLOCAVEC macro in libiberty: #define XALLOCAVEC(T, N) ((N) ? (T *) alloca (sizeof (T) * (N)) : (T *)0) The modified definition which tries to prevent zero-size allocation then causes GCC to fail to bootstrap with errors like the following: /src/gcc/svn/gcc/fold-const.c:1499:33: error: ‘*’ in boolean context, suggest ‘&&’ instead [-Werror=int-in-bool-context] elts = XALLOCAVEC (tree, nelts * 4); /src/gcc/svn/gcc/../include/libiberty.h:356:28: note: in definition of macro ‘XALLOCAVEC’ #define XALLOCAVEC(T, N) ((N) ? (T *) alloca (sizeof (T) * (N)) : (T *)0) ^
[Bug fortran/78500] ICE in gfc_check_vardef_context, at fortran/expr.c:5289
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78500 kargl at gcc dot gnu.org changed: What|Removed |Added CC||kargl at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |kargl at gcc dot gnu.org --- Comment #3 from kargl at gcc dot gnu.org --- patch submitted to mailing lists
[Bug middle-end/78501] [7 regression] SEGV in vrp_val_max
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78501 Dominique d'Humieres changed: What|Removed |Added Target|*-*-solaris2.* |*-*-solaris2.* ||x86_64-apple-darwin16 Status|UNCONFIRMED |NEW Last reconfirmed||2016-11-24 Host|*-*-solaris2.* |*-*-solaris2.* ||x86_64-apple-darwin16 Ever confirmed|0 |1 Build|*-*-solaris2.* |*-*-solaris2.* ||x86_64-apple-darwin16 --- Comment #1 from Dominique d'Humieres --- Also seen on x86_64-apple-darwin16.
[Bug libstdc++/71556] set::get_time() requires leading 0s for %H and friends
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71556 Sebastian Unger changed: What|Removed |Added CC||sebunger44 at gmail dot com --- Comment #2 from Sebastian Unger --- I also just ran into this. Took me a while to convince myself that I was actually looking at a compiler (well library) bug before searching. clang does not have this issue. It also affects %m and %d. Haven't tried any others.
[Bug target/68467] libgcc, compilation for target m68k-linux breaks in linux_atomic.c
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68467 Jeffrey A. Law changed: What|Removed |Added Priority|P3 |P4 Assignee|unassigned at gcc dot gnu.org |law at redhat dot com
[Bug fortran/78492] [OOP] Compiler segfault with non_overridable function in generic interface
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78492 Jeffrey A. Law changed: What|Removed |Added Priority|P3 |P4 CC||law at redhat dot com
[Bug fortran/78499] ICE in gfc_typename, at fortran/misc.c:158
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78499 Jeffrey A. Law changed: What|Removed |Added Priority|P3 |P4 CC||law at redhat dot com
[Bug fortran/78500] ICE in gfc_check_vardef_context, at fortran/expr.c:5289
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78500 Jeffrey A. Law changed: What|Removed |Added Priority|P3 |P4 CC||law at redhat dot com
[Bug c++/78502] New: Analyze 'final'/'override' even for uninstantiated class templates
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78502 Bug ID: 78502 Summary: Analyze 'final'/'override' even for uninstantiated class templates Product: gcc Version: 6.2.1 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: jengelh at inai dot de Target Milestone: --- This is a feature request for a future version. gcc 6.x currently misses to warn about nonderivable classes of templates that are left uninstantiated: $ cat t.cpp class A final {}; template class B : public A {}; Observed: $ g++-6 t.cpp -std=gnu++11 -c -Wall $ (no diagnostics) Expected: Clang 3.7.0: $ clang++ -std=gnu++11 -c -Wall t.cpp t.cpp:2:39: error: base 'A' is marked 'final' template class B : public A {}; Coverity 8.5.0.5: $ cov-build g++ -std=gnu++11 -c -Wall t.cpp "t.cpp", line 2: error #1920: a "final" class type cannot be used as a base class class B : public A { gcc version 6.2.1 20161121 [gcc-6-branch revision 242657] (SUSE Linux)
[Bug fortran/78297] ICE in finish_equivalences, at fortran/trans-common.c:1246
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78297 kargl at gcc dot gnu.org changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED Target Milestone|--- |5.5 --- Comment #6 from kargl at gcc dot gnu.org --- Fixed on 5-branch, 6-branch, and trunk.
[Bug fortran/78297] ICE in finish_equivalences, at fortran/trans-common.c:1246
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78297 --- Comment #5 from kargl at gcc dot gnu.org --- Author: kargl Date: Wed Nov 23 22:48:54 2016 New Revision: 242811 URL: https://gcc.gnu.org/viewcvs?rev=242811=gcc=rev Log: 2016-11-23 Steven G. KarglPR fortran/78297 * trans-common.c (finish_equivalences): Do not dereference a NULL pointer. 2016-11-23 Steven G. Kargl PR fortran/78297 * gfortran.dg/pr78297.f90: New test. Added: branches/gcc-5-branch/gcc/testsuite/gfortran.dg/pr78297.f90 Modified: branches/gcc-5-branch/gcc/fortran/ChangeLog branches/gcc-5-branch/gcc/fortran/trans-common.c branches/gcc-5-branch/gcc/testsuite/ChangeLog
[Bug fortran/78298] ICE in lookup_decl_in_outer_ctx, bei omp-low.c:4115
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78298 Harald Anlauf changed: What|Removed |Added CC||anlauf at gmx dot de --- Comment #2 from Harald Anlauf --- Fusing the outer $omp parallel / $omp do makes the code compile, e.g.: program p implicit none integer :: i, j, n n = 2 ! !$omp parallel ! !$omp do !$omp parallel do do i = 1, n !$omp parallel !$omp do do j = 1, n call sub(i) end do !$omp end parallel end do ! !$omp end parallel !$omp end parallel do !call unused() contains subroutine sub(x) integer :: x end subroutine sub subroutine unused() i = 0 j = 0 end end program p The differences in the dump-tree may be revealing to sb. understanding the parsing of OpenMP constructs.
[Bug fortran/78297] ICE in finish_equivalences, at fortran/trans-common.c:1246
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78297 --- Comment #4 from kargl at gcc dot gnu.org --- Author: kargl Date: Wed Nov 23 22:16:53 2016 New Revision: 242806 URL: https://gcc.gnu.org/viewcvs?rev=242806=gcc=rev Log: 2016-11-23 Steven G. KarglPR fortran/78297 * trans-common.c (finish_equivalences): Do not dereference a NULL pointer. 2016-11-23 Steven G. Kargl PR fortran/78297 * gfortran.dg/pr78297.f90: New test. Added: branches/gcc-6-branch/gcc/testsuite/gfortran.dg/pr78297.f90 Modified: branches/gcc-6-branch/gcc/fortran/ChangeLog branches/gcc-6-branch/gcc/fortran/trans-common.c branches/gcc-6-branch/gcc/testsuite/ChangeLog
[Bug middle-end/78501] [7 regression] SEGV in vrp_val_max
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78501 Rainer Orth changed: What|Removed |Added Target Milestone|--- |7.0
[Bug middle-end/78501] New: [7 regression] SEGV in vrp_val_max
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78501 Bug ID: 78501 Summary: [7 regression] SEGV in vrp_val_max Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end Assignee: unassigned at gcc dot gnu.org Reporter: ro at gcc dot gnu.org CC: prathamesh3492 at gcc dot gnu.org Target Milestone: --- Host: *-*-solaris2.* Target: *-*-solaris2.* Build: *-*-solaris2.* As of r242800, Ada bootstrap is broken on (at least) Solaris/x86 and SPARC: in stage2, I get /var/gcc/regression/trunk/12-gcc/build/./prev-gcc/xgcc -B/var/gcc/regression/trunk/12-gcc/build/./prev-gcc/ -B/vol/gcc/i386-pc-solaris2.12/bin/ -B/vol/gcc/i386-pc-solaris2.12/bin/ -B/vol/gcc/i386-pc-solaris2.12/lib/ -isystem /vol/gcc/i386-pc-solaris2.12/include -isystem /vol/gcc/i386-pc-solaris2.12/sys-include-c -g -O2 -gnatpg -gnatwns -gnata -W -Wall -nostdinc -I- -I. -Iada/generated -Iada -I/vol/gcc/src/hg/trunk/local/gcc/ada -I/vol/gcc/src/hg/trunk/local/gcc/ada/gcc-interface /vol/gcc/src/hg/trunk/local/gcc/ada/osint.adb -o ada/osint.o raised CONSTRAINT_ERROR : SIGSEGV make: *** [ada/osint.o] Error 1 Thread 2 received signal SIGSEGV, Segmentation fault. [Switching to Thread 1 (LWP 1)] 0x099519ac in vrp_val_max (type=0x0) at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:156 156 if (!INTEGRAL_TYPE_P (type)) (gdb) where #0 0x099519ac in vrp_val_max (type=0x0) at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:156 #1 0x0995de5d in extract_range_basic (vr=0xfeffd164, stmt=0xfa517f24) at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:4033 #2 0x09967eb5 in vrp_visit_assignment_or_call (stmt=0xfa517f24, output_p=0xfeffd194, vr=0xfeffd164) at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:7137 #3 0x09969b75 in extract_range_from_stmt (stmt=0xfa517f24, taken_edge_p=0xfeffd174, output_p=0xfeffd194, vr=0xfeffd164) at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:7927 #4 0x099730f5 in evrp_dom_walker::before_dom_children (this=0xfeffd32c, bb=0xfa5ec200) at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:10885 #5 0x09f71ed5 in dom_walker::walk (this=0xfeffd32c, bb=0xfa5ec200) at /vol/gcc/src/hg/trunk/local/gcc/domwalk.c:265 #6 0x09973dbe in execute_early_vrp () at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:11109 #7 0x099743af in (anonymous namespace)::pass_early_vrp::execute ( this=0xac86450) at /vol/gcc/src/hg/trunk/local/gcc/tree-vrp.c:11358 #8 0x09590d66 in execute_one_pass (pass=0xac86450) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2370 #9 0x095910a1 in execute_pass_list_1 (pass=0xac86450) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2459 #10 0x095910d1 in execute_pass_list_1 (pass=0xac86200) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2460 #11 0x0959111b in execute_pass_list (fn=0xfade9680, pass=0xac86100) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2470 #12 0x0958f713 in do_per_function_toporder ( callback=0x95910e9, data=0xac86100) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:1729 #13 0x09591c90 in execute_ipa_pass_list (pass=0xac860c0) at /vol/gcc/src/hg/trunk/local/gcc/passes.c:2812 #14 0x091ec739 in ipa_passes () at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2286 #15 0x091ecb64 in symbol_table::compile (this=0xfac09000) at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2425 #16 0x091ed010 in symbol_table::finalize_compilation_unit (this=0xfac09000) at /vol/gcc/src/hg/trunk/local/gcc/cgraphunit.c:2584 #17 0x0968f70c in compile_file () at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:488 #18 0x09691937 in do_compile () at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:1983 #19 0x09691bf2 in toplev::main (this=0xfeffdafe, argc=34, argv=0xfeffdb54) at /vol/gcc/src/hg/trunk/local/gcc/toplev.c:2117 #20 0x0a09b44c in main (argc=34, argv=0xfeffdb54) at /vol/gcc/src/hg/trunk/local/gcc/main.c:39 This has obviously been introduced by 2016-11-23 Prathamesh Kulkarni PR middle-end/78153 * gimple-fold.c (fold_stmt_1): Handle case for GIMPLE_RETURN. * tree-vrp.c (extract_range_basic): Handle case for CFN_BUILT_IN_STRLEN. Rainer
[Bug fortran/78499] ICE in gfc_typename, at fortran/misc.c:158
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78499 Dominique d'Humieres changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2016-11-23 Ever confirmed|0 |1 --- Comment #2 from Dominique d'Humieres --- Confirmed.
[Bug fortran/78297] ICE in finish_equivalences, at fortran/trans-common.c:1246
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78297 --- Comment #3 from kargl at gcc dot gnu.org --- Author: kargl Date: Wed Nov 23 21:44:05 2016 New Revision: 242802 URL: https://gcc.gnu.org/viewcvs?rev=242802=gcc=rev Log: 2016-11-23 Steven G. KarglPR fortran/78297 * trans-common.c (finish_equivalences): Do not dereference a NULL pointer. 2016-11-23 Steven G. Kargl PR fortran/78297 * gfortran.dg/pr78297.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/pr78297.f90 Modified: trunk/gcc/fortran/ChangeLog trunk/gcc/fortran/trans-common.c trunk/gcc/testsuite/ChangeLog
[Bug fortran/69604] ICE in gfc_add_modify_loc, at fortran/trans.c:159
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69604 --- Comment #11 from Harald Anlauf --- While reducing PR 78290, I found another example giving a similar traceback: % gfc-trunk gfcbug136.f90 gfcbug136.f90:13:0: ip=>ta%i !!! Works if you comment this line out !!! internal compiler error: in gfc_add_modify_loc, at fortran/trans.c:159 0x835756e gfc_add_modify_loc(unsigned int, stmtblock_t*, tree_node*, tree_node*) ../../trunk/gcc/fortran/trans.c:158 0x83575e7 gfc_add_modify(stmtblock_t*, tree_node*, tree_node*) ../../trunk/gcc/fortran/trans.c:170 0x83a90eb gfc_trans_pointer_assignment(gfc_expr*, gfc_expr*) ../../trunk/gcc/fortran/trans-expr.c:8267 0x83a9688 gfc_trans_pointer_assign(gfc_code*) ../../trunk/gcc/fortran/trans-expr.c:8054 0x8358357 trans_code ../../trunk/gcc/fortran/trans.c:1714 0x838d62c gfc_generate_function_code(gfc_namespace*) ../../trunk/gcc/fortran/trans-decl.c:6261 0x830d833 translate_all_program_units ../../trunk/gcc/fortran/parse.c:6038 0x830d833 gfc_parse_file() ../../trunk/gcc/fortran/parse.c:6238 0x8352db5 gfc_be_parse_file ../../trunk/gcc/fortran/f95-lang.c:202 % cat gfcbug136.f90 ! Reduced from PR 78290, similar to PR 69604 subroutine foo () implicit none type mytype integer :: i = 1 end type mytype type(mytype),target :: ta(9) integer ,pointer :: ip(:) volatile :: ip ! <-- ICE ip=>ta%i !!! Works if you comment this line out !!! end subroutine foo
[Bug fortran/78500] ICE in gfc_check_vardef_context, at fortran/expr.c:5289
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78500 Dominique d'Humieres changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2016-11-23 Ever confirmed|0 |1 --- Comment #2 from Dominique d'Humieres --- Confirmed.
[Bug target/78012] -mfpxx produces assembly code using odd FP registers on MIPS
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78012 Maciej W. Rozyckichanged: What|Removed |Added CC||matthew.fortune at imgtec dot com --- Comment #5 from Maciej W. Rozycki --- I have been able to reproduce the bug now -- to trigger it you need to request classic SVR4 code either by means of compiler defaults or with the use of the `-mplt' option, in which case a pair of single-word FPU accesses is produced for $f15: first SWC1 to save it, and then LWC1 to restore it from the stack frame, as follows: swc1$f15,224($sp)# 1178 *movsi_internal/15 [length = 4] lwc1$f15,224($sp)# 1179 *movsi_internal/13 [length = 4] Notice the integer mode used. I haven't investigated it further. You need all of `-mips32r2 -mfpxx -mno-plt' to trigger it. It does *not* trigger if `-fPIC' or `-fPIE' is used in place of `-mno-plt'.
[Bug sanitizer/69278] Confusion option handling for -sanitize-recovery=alll
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69278 --- Comment #11 from Jakub Jelinek --- Author: jakub Date: Wed Nov 23 19:51:27 2016 New Revision: 242795 URL: https://gcc.gnu.org/viewcvs?rev=242795=gcc=rev Log: PR sanitizer/69278 * opts.c (parse_sanitizer_options): For -fsanitize=undefined, restore enabling also SANITIZE_UNREACHABLE and SANITIZE_RETURN. * g++.dg/ubsan/return-7.C: New test. * c-c++-common/ubsan/unreachable-4.c: New test. Added: trunk/gcc/testsuite/c-c++-common/ubsan/unreachable-4.c trunk/gcc/testsuite/g++.dg/ubsan/return-7.C Modified: trunk/gcc/ChangeLog trunk/gcc/opts.c trunk/gcc/testsuite/ChangeLog
[Bug tree-optimization/78482] [5/6/7 Regression] wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78482 --- Comment #10 from Jakub Jelinek --- Author: jakub Date: Wed Nov 23 19:50:23 2016 New Revision: 242794 URL: https://gcc.gnu.org/viewcvs?rev=242794=gcc=rev Log: PR tree-optimization/78482 * gcc.dg/torture/pr78482.c (c, d): Use signed char instead of char. (bar): New function. (main): Call bar instead of printf. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/torture/pr78482.c
[Bug fortran/78500] ICE in gfc_check_vardef_context, at fortran/expr.c:5289
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78500 --- Comment #1 from Gerhard Steinmetz--- Whereas : $ cat z2.f90 type(t) function f() f = 1 end $ gfortran-7-20161120 -c z2.f90 z2.f90:1:0: type(t) function f() Error: The type for function 'f' at (1) is not accessible z2.f90:2:3: f = 1 1 Error: Type inaccessible in variable definition context (assignment) at (1)
[Bug fortran/78500] New: ICE in gfc_check_vardef_context, at fortran/expr.c:5289
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78500 Bug ID: 78500 Summary: ICE in gfc_check_vardef_context, at fortran/expr.c:5289 Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: gerhard.steinmetz.fort...@t-online.de Target Milestone: --- With invalid code down to at least 4.8 : (configured with --enable-checking=yes) $ cat z1.f90 class(t) function f() f = 1 end $ gfortran-7-20161120 -c z1.f90 z1.f90:1:0: class(t) function f() Error: CLASS variable 'f' at (1) must be dummy, allocatable or pointer f951: internal compiler error: Segmentation fault 0xc4265f crash_signal ../../gcc/toplev.c:333 0x69642c gfc_check_vardef_context(gfc_expr*, bool, bool, bool, char const*) ../../gcc/fortran/expr.c:5289 0x6f81e6 gfc_resolve_code(gfc_code*, gfc_namespace*) ../../gcc/fortran/resolve.c:10915 0x6fab92 resolve_codes ../../gcc/fortran/resolve.c:16025 0x6fac8e gfc_resolve(gfc_namespace*) ../../gcc/fortran/resolve.c:16060 0x6e520a resolve_all_program_units ../../gcc/fortran/parse.c:5977 0x6e520a gfc_parse_file() ../../gcc/fortran/parse.c:6224 0x729052 gfc_be_parse_file ../../gcc/fortran/f95-lang.c:202
[Bug fortran/78499] ICE in gfc_typename, at fortran/misc.c:158
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78499 --- Comment #1 from Gerhard Steinmetz--- Whereas : $ cat z2.f90 program p type t end type type(t) :: x = 0 end $ gfortran-7-20161120 z2.f90 z2.f90:4:17: type(t) :: x = 0 1 Error: Can't convert INTEGER(4) to TYPE(t) at (1)
[Bug fortran/78499] New: ICE in gfc_typename, at fortran/misc.c:158
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78499 Bug ID: 78499 Summary: ICE in gfc_typename, at fortran/misc.c:158 Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: gerhard.steinmetz.fort...@t-online.de Target Milestone: --- With invalid code down to at least 4.8 : (configured with --enable-checking=yes) $ cat z1.f90 program p type t end type class(t) :: x = 0 end $ gfortran-7-20161120 z1.f90 z1.f90:4:16: class(t) :: x = 0 1 Error: CLASS variable 'x' at (1) must be dummy, allocatable or pointer f951: internal compiler error: Segmentation fault 0xc4265f crash_signal ../../gcc/toplev.c:333 0x6c239b gfc_typename(gfc_typespec*) ../../gcc/fortran/misc.c:158 0x6aa429 gfc_convert_type_warn(gfc_expr*, gfc_typespec*, int, int) ../../gcc/fortran/intrinsic.c:5020 0x695b49 gfc_check_assign_symbol(gfc_symbol*, gfc_component*, gfc_expr*) ../../gcc/fortran/expr.c:3878 0x71612b do_traverse_symtree ../../gcc/fortran/symbol.c:3994 0x6ff279 resolve_types ../../gcc/fortran/resolve.c:15963 0x6fac7c gfc_resolve(gfc_namespace*) ../../gcc/fortran/resolve.c:16058 0x6e520a resolve_all_program_units ../../gcc/fortran/parse.c:5977 0x6e520a gfc_parse_file() ../../gcc/fortran/parse.c:6224 0x729052 gfc_be_parse_file ../../gcc/fortran/f95-lang.c:202
[Bug middle-end/69183] ICE when using OpenMP PRIVATE keyword in OMP DO loop not explicitly encapsulated in OMP PARALLEL region
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69183 --- Comment #6 from Jakub Jelinek --- Author: jakub Date: Wed Nov 23 19:28:41 2016 New Revision: 242793 URL: https://gcc.gnu.org/viewcvs?rev=242793=gcc=rev Log: PR middle-end/69183 * omp-low.c (build_outer_var_ref): Change lastprivate argument to code, pass it recursively, adjust uses. For OMP_CLAUSE_PRIVATE on worksharing constructs, treat it like clauses on simd construct. Formatting fix. (lower_rec_input_clauses): For OMP_CLAUSE_PRIVATE_OUTER_REF pass OMP_CLAUSE_PRIVATE as last argument to build_outer_var_ref. (lower_lastprivate_clauses): Pass OMP_CLAUSE_LASTPRIVATE instead of true as last argument to build_outer_var_ref. * gfortran.dg/gomp/pr69183.f90: New test. Added: trunk/gcc/testsuite/gfortran.dg/gomp/pr69183.f90 Modified: trunk/gcc/ChangeLog trunk/gcc/omp-low.c trunk/gcc/testsuite/ChangeLog
[Bug target/78230] Compile pr66178.c fail for mips64el-elf with N64 abi
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78230 Jeffrey A. Law changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED CC||law at redhat dot com Resolution|--- |FIXED --- Comment #4 from Jeffrey A. Law --- Fixed on the trunk.
[Bug target/78230] Compile pr66178.c fail for mips64el-elf with N64 abi
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78230 --- Comment #3 from Jeffrey A. Law --- Author: law Date: Wed Nov 23 19:20:33 2016 New Revision: 242792 URL: https://gcc.gnu.org/viewcvs?rev=242792=gcc=rev Log: PR target/78230 * gcc.dg/torture/pr66178.c (test): Use uintptr_t instead of int. (test2) Ditto. Modified: trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/torture/pr66178.c
[Bug preprocessor/78498] New: valgrind conditional jump or move depends on uninitialised value(s) in format_type_warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78498 Bug ID: 78498 Summary: valgrind conditional jump or move depends on uninitialised value(s) in format_type_warning Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: preprocessor Assignee: unassigned at gcc dot gnu.org Reporter: msebor at gcc dot gnu.org Target Milestone: --- While debugging some memory problems in my own work I came across a Valgrind error that looks like it might be related to or a vestige of bug 78324. $ cat a.c && gcc -O2 -S -Wall -Wextra a.c -wrapper valgrind void f (void) { __builtin_printf ("%i", ""); } ==28974== Memcheck, a memory error detector ==28974== Copyright (C) 2002-2013, and GNU GPL'd, by Julian Seward et al. ==28974== Using Valgrind-3.10.1 and LibVEX; rerun with -h for copyright info ==28974== Command: /build/gcc-svn/gcc/cc1 -quiet -iprefix /home/msebor/build/gcc-svn/gcc/../lib/gcc/x86_64-pc-linux-gnu/7.0.0/ -isystem /build/gcc-svn/gcc/include -isystem /build/gcc-svn/gcc/include-fixed a.c -quiet -dumpbase a.c -mtune=generic -march=x86-64 -auxbase a -O2 -Wall -Wextra -o a.s ==28974== ==28974== Conditional jump or move depends on uninitialised value(s) ==28974==at 0x4C2CC18: strlen (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) ==28974==by 0x1A6F646: xstrndup (xstrndup.c:51) ==28974==by 0x88D4F5: get_corrected_substring(substring_loc const&, format_wanted_type*, tree_node*, format_kind_info const*, int, char) (c-format.c:3350) ==28974==by 0x88D886: format_type_warning(substring_loc const&, source_range*, format_wanted_type*, tree_node*, tree_node*, format_kind_info const*, int, char) (c-format.c:3461) ==28974==by 0x88CCEE: check_format_types(substring_loc const&, format_wanted_type*, format_kind_info const*, int, char) (c-format.c:3075) ==28974==by 0x88BE99: argument_parser::check_argument_type(format_char_info const*, length_modifier const&, tree_node*&, char const*&, bool, unsigned long&, tree_node*&, int, char const*, char const*, unsigned int, char) (c-format.c:2675) ==28974==by 0x88C30F: check_format_info_main(format_check_results*, function_format_info*, char const*, unsigned int, tree_node*, int, tree_node*, unsigned long, object_allocator&) (c-format.c:2820) ==28974==by 0x889674: check_format_arg(void*, tree_node*, unsigned long) (c-format.c:1672) ==28974==by 0x87616C: check_function_arguments_recurse(void (*)(void*, tree_node*, unsigned long), void*, tree_node*, unsigned long) (c-common.c:5689) ==28974==by 0x875EB5: check_function_arguments_recurse(void (*)(void*, tree_node*, unsigned long), void*, tree_node*, unsigned long) (c-common.c:5622) ==28974==by 0x888671: check_format_info(function_format_info*, tree_node*) (c-format.c:1405) ==28974==by 0x88795E: check_function_format(tree_node*, int, tree_node**) (c-format.c:1066) ==28974== a.c: In function ‘f’: a.c:3:23: warning: format ‘%i’ expects argument of type ‘int’, but argument 2 has type ‘char *’ [-Wformat=] __builtin_printf ("%i", ""); ~^ ~~ %s ==28974== ==28974== HEAP SUMMARY: ==28974== in use at exit: 2,437,618 bytes in 2,544 blocks ==28974== total heap usage: 12,675 allocs, 10,131 frees, 5,117,261 bytes allocated ==28974== ==28974== LEAK SUMMARY: ==28974==definitely lost: 0 bytes in 0 blocks ==28974==indirectly lost: 0 bytes in 0 blocks ==28974== possibly lost: 0 bytes in 0 blocks ==28974==still reachable: 2,437,618 bytes in 2,544 blocks ==28974== suppressed: 0 bytes in 0 blocks ==28974== Rerun with --leak-check=full to see details of leaked memory ==28974== ==28974== For counts of detected and suppressed errors, rerun with: -v ==28974== Use --track-origins=yes to see where uninitialised values come from ==28974== ERROR SUMMARY: 1 errors from 1 contexts (suppressed: 0 from 0)
[Bug tree-optimization/78482] [5/6/7 Regression] wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78482 --- Comment #9 from Jakub Jelinek --- Created attachment 40135 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40135=edit gcc7-pr78482-test.patch Does this patch fix that? In addition to changing char to signed char, I've changed the testcase so that it actually FAILs with unfixed compiler and PASSes with fixed one, previously with unfixed compiler it would just print 2 on stdout where nothing would notice that.
[Bug tree-optimization/78482] [5/6/7 Regression] wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78482 --- Comment #8 from Andrew Pinski --- (In reply to David Edelsohn from comment #7) > Yep, timing out on AIX also. Is this assuming signed char? Looks like it from the code. char c, d; for (; c >= 0; c--) Simple fix is to just change char to be signed char.
[Bug tree-optimization/78482] [5/6/7 Regression] wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78482 David Edelsohn changed: What|Removed |Added CC||dje at gcc dot gnu.org --- Comment #7 from David Edelsohn --- Yep, timing out on AIX also. Is this assuming signed char?
[Bug tree-optimization/78482] [5/6/7 Regression] wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78482 Segher Boessenkool changed: What|Removed |Added CC||segher at gcc dot gnu.org --- Comment #6 from Segher Boessenkool --- The new testcase fails (it times out) on powerpc64-linux and powerpc-linux.
[Bug c++/77907] [6 Regression] Add "const" to argument of constexpr constructor causes the object to be left in unconstructed state
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77907 Jakub Jelinek changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org Summary|[6/7 Regression] Add|[6 Regression] Add "const" |"const" to argument of |to argument of constexpr |constexpr constructor |constructor causes the |causes the object to be |object to be left in |left in unconstructed state |unconstructed state --- Comment #7 from Jakub Jelinek --- Fixed on the trunk so far.
[Bug c++/77907] [6/7 Regression] Add "const" to argument of constexpr constructor causes the object to be left in unconstructed state
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77907 --- Comment #6 from Jakub Jelinek --- Author: jakub Date: Wed Nov 23 18:45:27 2016 New Revision: 242790 URL: https://gcc.gnu.org/viewcvs?rev=242790=gcc=rev Log: PR c++/77907 * cp-gimplify.c (cp_fold) : When calling constructor and maybe_constant_value returns non-CALL_EXPR, create INIT_EXPR with the object on lhs and maybe_constant_value returned expr on rhs. * g++.dg/cpp0x/pr77907.C: New test. Added: trunk/gcc/testsuite/g++.dg/cpp0x/pr77907.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/cp-gimplify.c trunk/gcc/testsuite/ChangeLog
[Bug inline-asm/78487] asm cpuid code and -fgcse crashes
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78487 Stephan Beyer changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |INVALID --- Comment #6 from Stephan Beyer --- Ok, the problem is solved using __get_cpuid(). Sorry for bothering you and thank you for the quick help.
[Bug regression/78497] compiling with -save-temps adds -Wimplicit-fallthrough warnings
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78497 --- Comment #1 from Andrew Pinski --- I don't think there is much to be done here. I doubt we care so much about people using -save-temps and getting more warnings.
[Bug tree-optimization/77673] [5/6/7 Regression] 4-byte load generated instead of 1-byte load, possibly reading past the end of object
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77673 --- Comment #7 from Thomas Preud'homme --- (In reply to Thomas Preud'homme from comment #6) > (In reply to Thomas Preud'homme from comment #5) > > Got a patch, testing it now. > > Bootstrapped and testsuite came back clean. Trying to turn the code in > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77673#c0 into a testcase. > Expect a patch soon. > > Best regards. Patch is open for review at https://gcc.gnu.org/ml/gcc-patches/2016-11/msg02337.html
[Bug libgcc/57058] Bootstrap problems on AIX (libgcc configure, 64-bit)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=57058 David Edelsohn changed: What|Removed |Added CC||dje at gcc dot gnu.org --- Comment #1 from David Edelsohn --- If you encounter assembler errors with .llong, something else is wrong. Building GCC as a 64 bit application on AIX is not well tested.
[Bug regression/78497] New: compiling with -save-temps adds -Wimplicit-fallthrough warnings
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78497 Bug ID: 78497 Summary: compiling with -save-temps adds -Wimplicit-fallthrough warnings Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: regression Assignee: unassigned at gcc dot gnu.org Reporter: aoliva at gcc dot gnu.org Target Milestone: --- Since -save-temps performs separate preprocessing and drops comments, and -Wimplicit-fallthrough machinery recognizes some of the fallthrough comments to silence warnings, we get additional warnings (or errors, with -Werror) when compiling with -save-temps vs without it. It occurred to me that the preprocessor must be looking out for such comments in order for -Wimplicit-fallthrough to work, and in case of separate preprocessing, it would be desirable to retain information about the internal state implied by the removed comments in a #line directive, so that even with separate preprocessing we'd still have the same state to work with during compilation. This may require introducing artificial line breaks and blanks in the preprocessed output, so as to introduce the state at the right point in the (to be reconstructed) token stream.
[Bug middle-end/78153] strlen return value can be assumed to be less than PTRDIFF_MAX
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78153 --- Comment #1 from prathamesh3492 at gcc dot gnu.org --- Author: prathamesh3492 Date: Wed Nov 23 18:04:14 2016 New Revision: 242786 URL: https://gcc.gnu.org/viewcvs?rev=242786=gcc=rev Log: 2016-11-23 Prathamesh KulkarniPR middle-end/78153 * gimple-fold.c (fold_stmt_1): Handle case for GIMPLE_RETURN. * tree-vrp.c (extract_range_basic): Handle case for CFN_BUILT_IN_STRLEN. testsuite/ * gcc.dg/tree-ssa/pr78153-1.c: New test. * gcc.dg/tree-ssa/pr78153-2.c: Likewise. Added: trunk/gcc/testsuite/gcc.dg/tree-ssa/pr78153-1.c trunk/gcc/testsuite/gcc.dg/tree-ssa/pr78153-2.c Modified: trunk/gcc/ChangeLog trunk/gcc/gimple-fold.c trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-vrp.c
[Bug target/78362] [7 Regression] ICE: RTL check: expected code 'reg', have 'subreg' in rhs_regno, at rtl.h:1804 during libgomp build
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78362 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #3 from Jakub Jelinek --- Any progress on this? if (!aarch64_plus_immediate (operands[2], mode) && can_create_pseudo_p () && !REGNO_PTR_FRAME_P (REGNO (operands[1]))) is indeed wrong, because register_operand allows not just REG, but also SUBREG of either REG, or MEM (last case only before reload). I bet for SUBREG with SUBREG_REG being a REG you want to use REGNO_PTR_FRAME_P similarly on the SUBREG_REG, for SUBREG of MEM I think the final regno is unlikely going to be REGNO_PTR_FRAME_P. So: rtx op1 = operands[1]; if (GET_CODE (op1) == SUBREG) op1 = SUBREG_REG (op1); if (!aarch64_plus_immediate (operands[2], mode) && can_create_pseudo_p () && (!REG_P (op1) || !REGNO_PTR_FRAME_P (REGNO (op1))) ?
[Bug target/63250] Complex fp16 arithmetic uses nonexistent libgcc functions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63250 --- Comment #5 from James Greenhalgh --- Author: jgreenhalgh Date: Wed Nov 23 17:36:21 2016 New Revision: 242784 URL: https://gcc.gnu.org/viewcvs?rev=242784=gcc=rev Log: [Patch ARM 17/17] Enable _Float16 for ARM and fix PR target/63250 gcc/ PR target/63250 * config/arm/arm-builtins.c (arm_simd_floatHF_type_node): Rename to... (arm_fp16_type_node): ...This, make visibile. (arm_simd_builtin_std_type): Rename arm_simd_floatHF_type_node to arm_fp16_type_node. (arm_init_simd_builtin_types): Likewise. (arm_init_fp16_builtins): Likewise. * config/arm/arm.c (arm_excess_precision): New. (arm_floatn_mode): Likewise. (TARGET_C_EXCESS_PRECISION): Likewise. (TARGET_FLOATN_MODE): Likewise. (arm_promoted_type): Only promote arm_fp16_type_node. * config/arm/arm.h (arm_fp16_type_node): Declare. gcc/testsuite/ PR target/63250 * lib/target-supports.exp (add_options_for_float16): Add -mfp16-format=ieee when testign arm*-*-*. Modified: trunk/gcc/ChangeLog trunk/gcc/config/arm/arm-builtins.c trunk/gcc/config/arm/arm.c trunk/gcc/config/arm/arm.h trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/lib/target-supports.exp
[Bug sanitizer/69278] Confusion option handling for -sanitize-recovery=alll
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69278 --- Comment #10 from Jakub Jelinek --- Created attachment 40134 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40134=edit gcc7-pr69278.patch Untested fix for that.
[Bug sanitizer/69278] Confusion option handling for -sanitize-recovery=alll
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69278 --- Comment #9 from Jakub Jelinek --- You've already changed that behavior in r240491 (but also broke -fsanitize=undefined at the same time, will fix momentarily).
[Bug target/78458] [7 Regression] LRA ICE building libgcc for powerpc-linux-gnuspe e500v2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78458 --- Comment #12 from joseph at codesourcery dot com --- Applying also the third patch Index: gcc/config/rs6000/rs6000.c === --- gcc/config/rs6000/rs6000.c (revision 242751) +++ gcc/config/rs6000/rs6000.c (working copy) @@ -8443,14 +8443,13 @@ rs6000_legitimate_offset_address_p (machine_mode m case TFmode: case IFmode: case KFmode: +case TDmode: +case TImode: +case PTImode: if (TARGET_E500_DOUBLE) return (SPE_CONST_OFFSET_OK (offset) && SPE_CONST_OFFSET_OK (offset + 8)); - /* fall through */ -case TDmode: -case TImode: -case PTImode: extra = 8; if (!worst_case) break; results in glibc compiling successfully and the compilation parts of the testsuite running OK; not yet done any execution testing with these patches. The bad offset came from an insn: (insn 115 1209 1210 (set (reg:DF 27 27 [orig:294 _129 ] [294]) (subreg:DF (mem/c:TI (plus:SI (reg/f:SI 1 1) (const_int 256 [0x100])) [14 %sfp+256 S16 A128]) 0)) 1909 {*frob_df_ti} (nil))
[Bug c/78380] GCC crash with internal compiler error: in gen_reg_rtx, at emit-rtl.c:1025
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78380 --- Comment #2 from Elmar --- > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71009 might also be related I checked, but the workaround in bug 71009 to use -fmath-errno doesn't work for me.
[Bug sanitizer/69278] Confusion option handling for -sanitize-recovery=alll
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69278 --- Comment #8 from Martin Liška --- (In reply to Martin Liška from comment #7) > Well, the actual difference is that they enabled by default > -fsanitize-recover=address: > > ~/bin/llvm/bin/clang -fsanitize=address /tmp/leak.c ; grep store leak.s > callq __asan_report_store4_noabort Wrong comment (it's not enabled by default): ~/bin/llvm/bin/clang -fsanitize=address /tmp/leak.c -S ; grep store leak.s callq __asan_report_store4
[Bug sanitizer/69278] Confusion option handling for -sanitize-recovery=alll
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69278 --- Comment #7 from Martin Liška --- Well, the actual difference is that they enabled by default -fsanitize-recover=address: ~/bin/llvm/bin/clang -fsanitize=address /tmp/leak.c ; grep store leak.s callq __asan_report_store4_noabort
[Bug fortran/66227] [5/6/7 Regression] [OOP] EXTENDS_TYPE_OF n returns wrong result for polymorphic variable allocated to extended type
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66227 janus at gcc dot gnu.org changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #11 from janus at gcc dot gnu.org --- (In reply to janus from comment #8) > I'll backport the fix to the release branches soon if no problems appear on > trunk. Both backports have been applied by now. Thus, the problem is fixed for the upcoming releases 5.5, 6.3 and 7.0. Closing. Thanks for the report!
[Bug fortran/66227] [5/6/7 Regression] [OOP] EXTENDS_TYPE_OF n returns wrong result for polymorphic variable allocated to extended type
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66227 --- Comment #10 from janus at gcc dot gnu.org --- Author: janus Date: Wed Nov 23 16:46:31 2016 New Revision: 242770 URL: https://gcc.gnu.org/viewcvs?rev=242770=gcc=rev Log: 2016-11-23 Janus WeilBackport from trunk PR fortran/66227 * simplify.c (gfc_simplify_extends_type_of): Fix missed optimization. Prevent over-simplification. Fix a comment. Add a comment. 2016-11-23 Janus Weil Backport from trunk PR fortran/66227 * gfortran.dg/extends_type_of_3.f90: Fix and extend the test case. Modified: branches/gcc-5-branch/gcc/fortran/ChangeLog branches/gcc-5-branch/gcc/fortran/simplify.c branches/gcc-5-branch/gcc/testsuite/ChangeLog branches/gcc-5-branch/gcc/testsuite/gfortran.dg/extends_type_of_3.f90
[Bug middle-end/78461] [7 Regression] ICE: in operator+=, at gimple-ssa-sprintf.c:214
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78461 Martin Sebor changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #6 from Martin Sebor --- Fixed in r242769.
[Bug middle-end/78461] [7 Regression] ICE: in operator+=, at gimple-ssa-sprintf.c:214
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78461 --- Comment #5 from Martin Sebor --- Author: msebor Date: Wed Nov 23 16:44:16 2016 New Revision: 242769 URL: https://gcc.gnu.org/viewcvs?rev=242769=gcc=rev Log: PR middle-end/78461 - [7 Regression] ICE: in operator+= gcc/testsuite/ChangeLog: PR middle-end/78461 * gcc.dg/tree-ssa/builtin-sprintf-4.c: New test. * gcc.dg/tree-ssa/builtin-sprintf-warn-2.c: Adjust warning text. gcc/ChangeLog: PR middle-end/78461 * gimple-ssa-sprintf.c (format_string): Correct the maxima and set the minimum number of bytes for an unknown string to zero. Added: trunk/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-4.c Modified: trunk/gcc/ChangeLog trunk/gcc/gimple-ssa-sprintf.c trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/tree-ssa/builtin-sprintf-warn-2.c
[Bug c++/77739] [5/6 Regression] internal compiler error: in create_tmp_var, at gimple-expr.c:524
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77739 Jakub Jelinek changed: What|Removed |Added Known to work||7.0 Summary|[5/6/7 Regression] internal |[5/6 Regression] internal |compiler error: in |compiler error: in |create_tmp_var, at |create_tmp_var, at |gimple-expr.c:524 |gimple-expr.c:524 Known to fail|7.0 | --- Comment #7 from Jakub Jelinek --- Fixed on the trunk so far.
[Bug c++/71450] [5/6 Regression] ICE on invalid C++11 code on x86_64-linux-gnu: in tree check: expected record_type or union_type or qual_union_type, have template_type_parm in lookup_base, at cp/sear
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71450 Jakub Jelinek changed: What|Removed |Added Summary|[5/6/7 Regression] ICE on |[5/6 Regression] ICE on |invalid C++11 code on |invalid C++11 code on |x86_64-linux-gnu: in tree |x86_64-linux-gnu: in tree |check: expected record_type |check: expected record_type |or union_type or|or union_type or |qual_union_type, have |qual_union_type, have |template_type_parm in |template_type_parm in |lookup_base, at |lookup_base, at |cp/search.c:203 |cp/search.c:203 --- Comment #5 from Jakub Jelinek --- Fixed on the trunk so far.
[Bug fortran/66227] [5/6/7 Regression] [OOP] EXTENDS_TYPE_OF n returns wrong result for polymorphic variable allocated to extended type
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=66227 --- Comment #9 from janus at gcc dot gnu.org --- Author: janus Date: Wed Nov 23 16:26:38 2016 New Revision: 242768 URL: https://gcc.gnu.org/viewcvs?rev=242768=gcc=rev Log: 2016-11-23 Janus WeilBackport from trunk PR fortran/66227 * simplify.c (gfc_simplify_extends_type_of): Fix missed optimization. Prevent over-simplification. Fix a comment. Add a comment. 2016-11-23 Janus Weil Backport from trunk PR fortran/66227 * gfortran.dg/extends_type_of_3.f90: Fix and extend the test case. Modified: branches/gcc-6-branch/gcc/fortran/ChangeLog branches/gcc-6-branch/gcc/fortran/simplify.c branches/gcc-6-branch/gcc/testsuite/ChangeLog branches/gcc-6-branch/gcc/testsuite/gfortran.dg/extends_type_of_3.f90
[Bug sanitizer/69278] Confusion option handling for -sanitize-recovery=alll
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69278 --- Comment #6 from Martin Liška --- Behavior was changed in between clang 3.7.1 and 3.8.1: https://godbolt.org/g/poL2cY.
[Bug ipa/78494] Issues pointed out by valgrind --tool=exp-dhat
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78494 --- Comment #4 from Markus Trippelsdorf --- Created attachment 40133 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40133=edit full output for top 100 allocation points
[Bug bootstrap/78390] [7 Regression] Bootstrap failure: match.pd: cannot determine type of operand
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78390 Michael Matz changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #29 from Michael Matz --- So, this is fixed now.
[Bug c++/71450] [5/6/7 Regression] ICE on invalid C++11 code on x86_64-linux-gnu: in tree check: expected record_type or union_type or qual_union_type, have template_type_parm in lookup_base, at cp/se
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71450 --- Comment #4 from Jakub Jelinek --- Author: jakub Date: Wed Nov 23 15:59:25 2016 New Revision: 242767 URL: https://gcc.gnu.org/viewcvs?rev=242767=gcc=rev Log: PR c++/71450 * pt.c (tsubst_copy): Return error_mark_node when mark_used fails, even when complain & tf_error. * g++.dg/cpp0x/pr71450-1.C: New test. * g++.dg/cpp0x/pr71450-2.C: New test. Added: trunk/gcc/testsuite/g++.dg/cpp0x/pr71450-1.C trunk/gcc/testsuite/g++.dg/cpp0x/pr71450-2.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/pt.c trunk/gcc/testsuite/ChangeLog
[Bug c/78380] GCC crash with internal compiler error: in gen_reg_rtx, at emit-rtl.c:1025
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78380 Eric Gallager changed: What|Removed |Added CC||egall at gwmail dot gwu.edu --- Comment #1 from Eric Gallager --- (In reply to Elmar from comment #0) > Created attachment 40057 [details] > Preprocessed source file > > Dear GCC team, > > I encountered this crash when compiling for MacOSX, either directly in > MacOSX (precompiled GCC 6.2.0 downloaded from hpc.sourceforge.net) or when > cross-compiling from Linux (GCC 6.2.0 compiled using > https://github.com/tpoechtrager/osxcross scripts) > > The bug database found three possibly related bugs, but in emit-rtl.c line > 1027, not line 1025 like mine: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=70420 > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69401 > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=68538 > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71009 might also be related
[Bug c++/77739] [5/6/7 Regression] internal compiler error: in create_tmp_var, at gimple-expr.c:524
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77739 --- Comment #6 from Jakub Jelinek --- Author: jakub Date: Wed Nov 23 15:54:39 2016 New Revision: 242766 URL: https://gcc.gnu.org/viewcvs?rev=242766=gcc=rev Log: PR c++/77739 * cp-gimplify.c (cp_gimplify_tree) : Pass false as handle_invisiref_parm_p to cp_genericize_tree. (struct cp_genericize_data): Add handle_invisiref_parm_p field. (cp_genericize_r): Don't wrap is_invisiref_parm into references if !wtd->handle_invisiref_parm_p. (cp_genericize_tree): Add handle_invisiref_parm_p argument, set wtd.handle_invisiref_parm_p to it. (cp_genericize): Pass true as handle_invisiref_parm_p to cp_genericize_tree. Formatting fix. * g++.dg/cpp1y/pr77739.C: New test. Added: trunk/gcc/testsuite/g++.dg/cpp1y/pr77739.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/cp-gimplify.c trunk/gcc/testsuite/ChangeLog
[Bug rtl-optimization/77541] [7 Regression] wrong code with 512bit vectors of int128 @ -O1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77541 --- Comment #4 from Vladimir Makarov --- (In reply to Uroš Bizjak from comment #2) > (In reply to Uroš Bizjak from comment #1) > > This is RA failure, where reload tries to fix up: > > To be clear, it is LRA pass, not reload. Yes, it is a LRA bug. I can not reproduce it with -O but I reproduced it with -O2. I am working on it. I hope to have a fix at the end of week.
Re: [C++ PR 78252] illformed lamda?
On 11/22/2016 02:26 PM, Nathan Sidwell wrote: template void for2 (T ) { } void Foo () { auto lam_1 = [](int &) { }; auto lam_2 = [](auto &) { }; // IIUC this is implicitly templatey for2 (lam_1); for2 (lam_2); // What is the lambda's argument type? } We get 2 instantiations of for2: .type_Z4for2IZ3FoovEUlRiE_EvRT_, @function .type_Z4for2IZ3FoovEUlRT_E0_EvS1_, @function Ok. looking further, I now think this is well formed. lam_2's 'auto &' parameter creates an implicit templated function operator member function. We could have used 'Da' to refer to the auto parms, but we didn't. I think that means that the demangler needs to be taught that 'T[n]_' occurring inside a lambda's argument encoding means 'auto' and does not refer to any containing template instantiation name? nathan -- Nathan Sidwell
Re: [C++ PR 78252] illformed lamda?
On Wed, Nov 23, 2016 at 10:34 AM, Nathan Sidwellwrote: > On 11/22/2016 02:26 PM, Nathan Sidwell wrote: >> >> template >> void for2 (T ) >> { >> } >> >> void Foo () >> { >> auto lam_1 = [](int &) { }; >> auto lam_2 = [](auto &) { }; // IIUC this is implicitly templatey >> >> for2 (lam_1); >> for2 (lam_2); // What is the lambda's argument type? >> } >> >> We get 2 instantiations of for2: >> .type_Z4for2IZ3FoovEUlRiE_EvRT_, @function >> .type_Z4for2IZ3FoovEUlRT_E0_EvS1_, @function > > > Ok. looking further, I now think this is well formed. > > lam_2's 'auto &' parameter creates an implicit templated function operator > member function. We could have used 'Da' to refer to the auto parms, but we > didn't. I think that means that the demangler needs to be taught that > 'T[n]_' occurring inside a lambda's argument encoding means 'auto' and does > not refer to any containing template instantiation name? That sounds good. I wonder why is_auto doesn't already return true for them? Jason
[Bug inline-asm/78487] asm cpuid code and -fgcse crashes
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78487 --- Comment #5 from Stephan Beyer --- It crashes on run-time. I have absolutely no experience using extended asm syntax but I guess g++ relies on the constraints for its optimization, so I guess the constraints are wrong. I will port the code to use the macro from cpuid.h and close the issue if there are no more crashes. Thank you.
[Bug libstdc++/78483] Error: reference to 'on_exit' is ambiguous
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78483 --- Comment #5 from Kris --- Fair do's. But then, IMHO, 'on_exit' shouldn't pollute the global namespace either. Hence, it should be prefixed with '__'?
[Bug middle-end/69183] ICE when using OpenMP PRIVATE keyword in OMP DO loop not explicitly encapsulated in OMP PARALLEL region
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69183 --- Comment #5 from Jakub Jelinek --- Created attachment 40132 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40132=edit gcc7-pr69183.patch Untested fix.
[Bug tree-optimization/71595] [7 Regression] ICE on valid code at -O2 and -O3 on x86_64-linux-gnu: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:704
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71595 --- Comment #6 from Richard Biener --- diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c index beb65b0..4af39fa 100644 --- a/gcc/tree-ssa-loop-ivcanon.c +++ b/gcc/tree-ssa-loop-ivcanon.c @@ -647,7 +647,7 @@ unloop_loops (bitmap loop_closed_ssa_invalidated, latch_edge->flags |= flags; latch_edge->goto_locus = locus; - latch_edge->dest->loop_father = current_loops->tree_root; + add_bb_to_loop (latch_edge->dest, current_loops->tree_root); latch_edge->dest->count = 0; latch_edge->dest->frequency = 0; set_immediate_dominator (CDI_DOMINATORS, latch_edge->dest, latch_edge->src); fixes that verification issue (but not the loop-closed SSA issue). It looks like remove_path doesn't properly update loop_closed_ssa_invalidated.
[Bug libstdc++/78483] Error: reference to 'on_exit' is ambiguous
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78483 --- Comment #4 from Jonathan Wakely --- Right, on_exit is not part of the C++ standard, so it's correct that it is not in namespace std.
[Bug libstdc++/78486] feature request: std::iu16stringstream std::ou16stringstream, and utf8
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78486 Jonathan Wakely changed: What|Removed |Added Severity|normal |enhancement --- Comment #2 from Jonathan Wakely --- No they aren't part of the standard, but could be added as conforming extensions. They'd need support from char_traits specializations and facets, which is not just copy
[Bug libstdc++/78490] [c++17] libstdc++ has undefined behavior in operator= of propagate_const
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78490 Jonathan Wakely changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED Target Milestone|--- |6.3 --- Comment #5 from Jonathan Wakely --- Fixed for 6.3
[Bug libstdc++/78490] [c++17] libstdc++ has undefined behavior in operator= of propagate_const
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78490 --- Comment #4 from Jonathan Wakely --- Author: redi Date: Wed Nov 23 15:22:35 2016 New Revision: 242762 URL: https://gcc.gnu.org/viewcvs?rev=242762=gcc=rev Log: PR78490 add missing returns to propagate_const 2016-11-23 Felix MorgnerJonathan Wakely PR libstdc++/78490 * include/experimental/propagate_const (propagate_const::operator=): Add missing return statements. * testsuite/experimental/propagate_const/assignment/move_neg.cc: Adjust dg-error line numbers. * testsuite/experimental/propagate_const/requirements2.cc: Likewise. Modified: branches/gcc-6-branch/libstdc++-v3/ChangeLog branches/gcc-6-branch/libstdc++-v3/include/experimental/propagate_const branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/propagate_const/assignment/move_neg.cc branches/gcc-6-branch/libstdc++-v3/testsuite/experimental/propagate_const/requirements2.cc
[Bug middle-end/69183] ICE when using OpenMP PRIVATE keyword in OMP DO loop not explicitly encapsulated in OMP PARALLEL region
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69183 Jakub Jelinek changed: What|Removed |Added Keywords||openmp Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org
[Bug tree-optimization/71595] [7 Regression] ICE on valid code at -O2 and -O3 on x86_64-linux-gnu: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:704
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71595 --- Comment #4 from Richard Biener --- The real reason is probably that after if (changed) { unsigned i; unloop_loops (loop_closed_ssa_invalidated, _invalidated); the loop tree is hosed. The following into-loop-closed-SSA rewrite cannot be possibly successful then.
[Bug tree-optimization/71595] [7 Regression] ICE on valid code at -O2 and -O3 on x86_64-linux-gnu: in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:704
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71595 Richard Biener changed: What|Removed |Added Status|NEW |ASSIGNED Known to work||6.2.1 Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org --- Comment #5 from Richard Biener --- Debug patch: diff --git a/gcc/tree-ssa-loop-ivcanon.c b/gcc/tree-ssa-loop-ivcanon.c index beb65b0..6948e62 100644 --- a/gcc/tree-ssa-loop-ivcanon.c +++ b/gcc/tree-ssa-loop-ivcanon.c @@ -1379,6 +1379,8 @@ tree_unroll_loops_completely (bool may_increase_size, bool unroll_outer) unloop_loops (loop_closed_ssa_invalidated, _invalidated); + verify_loop_structure (); + /* We can not use TODO_update_ssa_no_phi because VOPS gets confused. */ if (loop_closed_ssa_invalidated && !bitmap_empty_p (loop_closed_ssa_invalidated)) mine.
[Bug target/71399] [5/6/7 Regression] 5.3.0 bootstrap comparison failure on arm-linux-gnueabihf
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=71399 --- Comment #15 from Ludovic Courtès --- Hi Jakub, Thanks for the suggestions. Unfortunately I cannot offer to rebuild everything with dumps right now; I'll see if I can do something later, no promise. Hopefully, with the details and faulty commit I gave earlier, people can more easily reproduce and pinpoint the problem.
[Bug tree-optimization/78496] New: Missed opportunities for jump threading
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78496 Bug ID: 78496 Summary: Missed opportunities for jump threading Product: gcc Version: 7.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: ysrumyan at gmail dot com Target Milestone: --- Created attachment 40131 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=40131=edit test-case to reproduce, compile with -O3 option. We noticed a huge performance drop on one important benchmark which is caused by hoisting and collecting comparisons participated in conditional branches. Here is comments provided by Richard on it: Note this is a general issue with PRE which tends to see partial redundancies when it can compute an expression to a constant on one edge. There is nothing wrong with that but the particular example shows the lack of a cost model with respect to register pressure (same applies to other GIMPLE optimization passes). In this case we have a lot of expression anticipated from the same blocks where on one incoming edge their value is constant. Profitability here really depends on the "distance" of the to be inserted PHI and its use I guess. We're missing quite some jump-threading here as well: : # x1_197 = PHI# _407 = PHI <_16(15), _16(123), 0(105)> # aa1_410 = PHI # d1_413 = PHI # w1_416 = PHI # v1_377 = PHI # oo1_371 = PHI # ss1_376 = PHI # r1_609 = PHI # _612 = PHI <_596(15), _596(123), _188(105)> # out_ind_lsm.82_322 = PHI _549 = w1_416 <= 899; _548 = _407 > 839; _541 = _548 & _549; if (_541 != 0) goto ; else goto ; here 105 -> 16 -> 124 (forwarder) -> 18 which would eventually make PRE behave somewhat saner (avoding the far distances). The case appears with phicprop1 (or rather DOM, itself missing a followup transform with respect to folding a degenerate constant PHI plus the followup secondary threading opportunities). The backwards threader doesn't exploit the above opportunity though. Our forward threaders (like DOM) do. Unfortunately it requires quite a few iterations to get all opportunities exploited... (inserting 9 DOM/phi-only-cprop pass pairs "helps") I suggest to open a bugreport for this. Jeff may want to look at the threading issue (I believe the backward threader _does_ iterate). I attach a test-case to reproduce an issue.
[Bug c++/78495] [7 regression][new inheriting ctors] variant members lead to uninitialized parameter
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78495 Richard Biener changed: What|Removed |Added Target Milestone|--- |7.0
[Bug tree-optimization/78396] [7 regression] gcc.dg/vect/bb-slp-cond-1.c FAILs after fix for PR77848
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78396 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #8 from Richard Biener --- Fixed.
[Bug ipa/78494] Issues pointed out by valgrind --tool=exp-dhat
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78494 --- Comment #3 from Jonathan Wakely --- Author: redi Date: Wed Nov 23 14:45:29 2016 New Revision: 242760 URL: https://gcc.gnu.org/viewcvs?rev=242760=gcc=rev Log: PR78494 add missing returns to propagate_const 2016-11-23 Felix MorgnerJonathan Wakely PR libstdc++/78494 * include/experimental/propagate_const (propagate_const::operator=): Add missing return statements. * testsuite/experimental/propagate_const/assignment/move_neg.cc: Adjust dg-error line numbers. * testsuite/experimental/propagate_const/requirements2.cc: Likewise. Modified: trunk/libstdc++-v3/ChangeLog trunk/libstdc++-v3/include/experimental/propagate_const trunk/libstdc++-v3/testsuite/experimental/propagate_const/assignment/move_neg.cc trunk/libstdc++-v3/testsuite/experimental/propagate_const/requirements2.cc
[Bug tree-optimization/78396] [7 regression] gcc.dg/vect/bb-slp-cond-1.c FAILs after fix for PR77848
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78396 --- Comment #7 from Richard Biener --- Author: rguenth Date: Wed Nov 23 14:40:05 2016 New Revision: 242759 URL: https://gcc.gnu.org/viewcvs?rev=242759=gcc=rev Log: 2016-11-23 Richard BienerPR tree-optimization/78396 * tree-vectorizer.c (vectorize_loops): If an innermost loop didn't vectorize try vectorizing an if-converted body using BB vectorization. * gcc.dg/vect/bb-slp-cond-1.c: Adjust. Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/testsuite/gcc.dg/vect/bb-slp-cond-1.c trunk/gcc/tree-vectorizer.c
[Bug tree-optimization/78305] [6 Regression] Wrong constant folding
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78305 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to work||6.2.1 Resolution|--- |FIXED --- Comment #9 from Richard Biener --- Fixed.
[Bug bootstrap/78477] [7 Regression] bootstrap broken on s390x-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78477 --- Comment #5 from Segher Boessenkool --- Author: segher Date: Wed Nov 23 14:33:13 2016 New Revision: 242757 URL: https://gcc.gnu.org/viewcvs?rev=242757=gcc=rev Log: combine: Convert subreg-of-lshiftrt to zero_extract properly (PR78390) r242414, for PR77881, introduces some bugs (PR78390, PR78438, PR78477). It all has the same root cause: that patch makes combine convert every lowpart subreg of a logical shift right to a zero_extract. This cannot work at all if it is not a constant shift, and it has to be a bit more careful exactly which bits it extracts. PR target/77881 PR bootstrap/78390 PR target/78438 PR bootstrap/78477 * combine.c (make_compound_operation_int): Do not convert a subreg of a non-constant logical shift right to a zero_extract. Handle the case where some zero bits have been shifted into the range covered by that subreg. Modified: trunk/gcc/ChangeLog trunk/gcc/combine.c
[Bug target/77881] [5/6 Regression] Non-optimal signed comparison on x86_64 since r146817
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77881 --- Comment #8 from Segher Boessenkool --- Author: segher Date: Wed Nov 23 14:33:13 2016 New Revision: 242757 URL: https://gcc.gnu.org/viewcvs?rev=242757=gcc=rev Log: combine: Convert subreg-of-lshiftrt to zero_extract properly (PR78390) r242414, for PR77881, introduces some bugs (PR78390, PR78438, PR78477). It all has the same root cause: that patch makes combine convert every lowpart subreg of a logical shift right to a zero_extract. This cannot work at all if it is not a constant shift, and it has to be a bit more careful exactly which bits it extracts. PR target/77881 PR bootstrap/78390 PR target/78438 PR bootstrap/78477 * combine.c (make_compound_operation_int): Do not convert a subreg of a non-constant logical shift right to a zero_extract. Handle the case where some zero bits have been shifted into the range covered by that subreg. Modified: trunk/gcc/ChangeLog trunk/gcc/combine.c
[Bug bootstrap/78390] [7 Regression] Bootstrap failure: match.pd: cannot determine type of operand
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78390 --- Comment #28 from Segher Boessenkool --- Author: segher Date: Wed Nov 23 14:33:13 2016 New Revision: 242757 URL: https://gcc.gnu.org/viewcvs?rev=242757=gcc=rev Log: combine: Convert subreg-of-lshiftrt to zero_extract properly (PR78390) r242414, for PR77881, introduces some bugs (PR78390, PR78438, PR78477). It all has the same root cause: that patch makes combine convert every lowpart subreg of a logical shift right to a zero_extract. This cannot work at all if it is not a constant shift, and it has to be a bit more careful exactly which bits it extracts. PR target/77881 PR bootstrap/78390 PR target/78438 PR bootstrap/78477 * combine.c (make_compound_operation_int): Do not convert a subreg of a non-constant logical shift right to a zero_extract. Handle the case where some zero bits have been shifted into the range covered by that subreg. Modified: trunk/gcc/ChangeLog trunk/gcc/combine.c
[Bug middle-end/78228] [6 Regression] fstrict-overflow breaks code without overflow?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78228 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Known to work||6.2.1 Resolution|--- |FIXED --- Comment #6 from Richard Biener --- Fixed.
[Bug target/78438] [7 Regression] incorrect comparison optimization
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78438 --- Comment #7 from Segher Boessenkool --- Author: segher Date: Wed Nov 23 14:33:13 2016 New Revision: 242757 URL: https://gcc.gnu.org/viewcvs?rev=242757=gcc=rev Log: combine: Convert subreg-of-lshiftrt to zero_extract properly (PR78390) r242414, for PR77881, introduces some bugs (PR78390, PR78438, PR78477). It all has the same root cause: that patch makes combine convert every lowpart subreg of a logical shift right to a zero_extract. This cannot work at all if it is not a constant shift, and it has to be a bit more careful exactly which bits it extracts. PR target/77881 PR bootstrap/78390 PR target/78438 PR bootstrap/78477 * combine.c (make_compound_operation_int): Do not convert a subreg of a non-constant logical shift right to a zero_extract. Handle the case where some zero bits have been shifted into the range covered by that subreg. Modified: trunk/gcc/ChangeLog trunk/gcc/combine.c
[Bug tree-optimization/77855] [5/6 Regression] wrong code at -O3 on x86_64-linux-gnu (in both 32-bit and 64-bit modes)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77855 --- Comment #6 from Richard Biener --- Author: rguenth Date: Wed Nov 23 14:31:16 2016 New Revision: 242756 URL: https://gcc.gnu.org/viewcvs?rev=242756=gcc=rev Log: 2016-11-23 Richard BienerBackport from mainline 2016-11-23 Richard Biener PR lto/78472 * tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized fields. lto/ * lto.c (hash_canonical_type): Ignore zero-sized fields. * g++.dg/lto/pr78472_0.c: New testcase. * g++.dg/lto/pr78472_1.C: Likewise. 2016-11-17 Richard Biener PR middle-end/78305 * fold-const.c (negate_expr_p): Fix multiplication case. * gcc.dg/torture/pr78305.c: New testcase. 2016-11-16 Richard Biener PR middle-end/78333 * gimplify.c (gimplify_function_tree): Do not instrument GNU extern inline functions. * gcc.dg/pr78333.c: New testcase. 2016-11-07 Richard Biener PR tree-optimization/78228 * tree-ssa-phiopt.c (abs_replacement): Avoid introducing undefined behavior. * gcc.dg/tree-ssa/phi-opt-15.c: New testcase. 2016-11-04 Richard Biener PR middle-end/78185 * loop-invariant.c (find_exits): Record entering inner loops as possibly exiting to handle infinite sub-loops. * tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h. (fill_always_executed_in_1): Honor infinite child loops. * gcc.dg/pr78185.c: New testcase. 2016-10-06 Richard Biener PR tree-optimization/77855 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove instead of removing the current item while iterating over the set which is not safe. * gcc.dg/torture/pr77855.c: New testcase. Added: branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_0.c branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_1.C branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78185.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78333.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr77855.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr78305.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-15.c Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/fold-const.c branches/gcc-6-branch/gcc/gimplify.c branches/gcc-6-branch/gcc/loop-invariant.c branches/gcc-6-branch/gcc/lto/ChangeLog branches/gcc-6-branch/gcc/lto/lto.c branches/gcc-6-branch/gcc/testsuite/ChangeLog branches/gcc-6-branch/gcc/tree-ssa-loop-im.c branches/gcc-6-branch/gcc/tree-ssa-phiopt.c branches/gcc-6-branch/gcc/tree-ssa-pre.c branches/gcc-6-branch/gcc/tree.c
[Bug tree-optimization/78482] [5/6/7 Regression] wrong code at -O3 in both 32-bit and 64-bit modes on x86_64-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78482 Richard Biener changed: What|Removed |Added Priority|P1 |P2 Known to work||7.0 Target Milestone|7.0 |5.5 Summary|[7 Regression] wrong code |[5/6/7 Regression] wrong |at -O3 in both 32-bit and |code at -O3 in both 32-bit |64-bit modes on |and 64-bit modes on |x86_64-linux-gnu|x86_64-linux-gnu --- Comment #5 from Richard Biener --- Fixed on trunk, queued for backporting.
[Bug lto/78472] warning: type of 's' does not match original declaration from zero length bitfield in C vs C++
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78472 Richard Biener changed: What|Removed |Added Known to work||6.2.1 Known to fail||5.4.0, 6.2.0 --- Comment #5 from Richard Biener --- Author: rguenth Date: Wed Nov 23 14:31:16 2016 New Revision: 242756 URL: https://gcc.gnu.org/viewcvs?rev=242756=gcc=rev Log: 2016-11-23 Richard BienerBackport from mainline 2016-11-23 Richard Biener PR lto/78472 * tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized fields. lto/ * lto.c (hash_canonical_type): Ignore zero-sized fields. * g++.dg/lto/pr78472_0.c: New testcase. * g++.dg/lto/pr78472_1.C: Likewise. 2016-11-17 Richard Biener PR middle-end/78305 * fold-const.c (negate_expr_p): Fix multiplication case. * gcc.dg/torture/pr78305.c: New testcase. 2016-11-16 Richard Biener PR middle-end/78333 * gimplify.c (gimplify_function_tree): Do not instrument GNU extern inline functions. * gcc.dg/pr78333.c: New testcase. 2016-11-07 Richard Biener PR tree-optimization/78228 * tree-ssa-phiopt.c (abs_replacement): Avoid introducing undefined behavior. * gcc.dg/tree-ssa/phi-opt-15.c: New testcase. 2016-11-04 Richard Biener PR middle-end/78185 * loop-invariant.c (find_exits): Record entering inner loops as possibly exiting to handle infinite sub-loops. * tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h. (fill_always_executed_in_1): Honor infinite child loops. * gcc.dg/pr78185.c: New testcase. 2016-10-06 Richard Biener PR tree-optimization/77855 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove instead of removing the current item while iterating over the set which is not safe. * gcc.dg/torture/pr77855.c: New testcase. Added: branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_0.c branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_1.C branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78185.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78333.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr77855.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr78305.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-15.c Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/fold-const.c branches/gcc-6-branch/gcc/gimplify.c branches/gcc-6-branch/gcc/loop-invariant.c branches/gcc-6-branch/gcc/lto/ChangeLog branches/gcc-6-branch/gcc/lto/lto.c branches/gcc-6-branch/gcc/testsuite/ChangeLog branches/gcc-6-branch/gcc/tree-ssa-loop-im.c branches/gcc-6-branch/gcc/tree-ssa-phiopt.c branches/gcc-6-branch/gcc/tree-ssa-pre.c branches/gcc-6-branch/gcc/tree.c
[Bug middle-end/78228] [6 Regression] fstrict-overflow breaks code without overflow?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78228 --- Comment #5 from Richard Biener --- Author: rguenth Date: Wed Nov 23 14:31:16 2016 New Revision: 242756 URL: https://gcc.gnu.org/viewcvs?rev=242756=gcc=rev Log: 2016-11-23 Richard BienerBackport from mainline 2016-11-23 Richard Biener PR lto/78472 * tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized fields. lto/ * lto.c (hash_canonical_type): Ignore zero-sized fields. * g++.dg/lto/pr78472_0.c: New testcase. * g++.dg/lto/pr78472_1.C: Likewise. 2016-11-17 Richard Biener PR middle-end/78305 * fold-const.c (negate_expr_p): Fix multiplication case. * gcc.dg/torture/pr78305.c: New testcase. 2016-11-16 Richard Biener PR middle-end/78333 * gimplify.c (gimplify_function_tree): Do not instrument GNU extern inline functions. * gcc.dg/pr78333.c: New testcase. 2016-11-07 Richard Biener PR tree-optimization/78228 * tree-ssa-phiopt.c (abs_replacement): Avoid introducing undefined behavior. * gcc.dg/tree-ssa/phi-opt-15.c: New testcase. 2016-11-04 Richard Biener PR middle-end/78185 * loop-invariant.c (find_exits): Record entering inner loops as possibly exiting to handle infinite sub-loops. * tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h. (fill_always_executed_in_1): Honor infinite child loops. * gcc.dg/pr78185.c: New testcase. 2016-10-06 Richard Biener PR tree-optimization/77855 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove instead of removing the current item while iterating over the set which is not safe. * gcc.dg/torture/pr77855.c: New testcase. Added: branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_0.c branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_1.C branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78185.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78333.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr77855.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr78305.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-15.c Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/fold-const.c branches/gcc-6-branch/gcc/gimplify.c branches/gcc-6-branch/gcc/loop-invariant.c branches/gcc-6-branch/gcc/lto/ChangeLog branches/gcc-6-branch/gcc/lto/lto.c branches/gcc-6-branch/gcc/testsuite/ChangeLog branches/gcc-6-branch/gcc/tree-ssa-loop-im.c branches/gcc-6-branch/gcc/tree-ssa-phiopt.c branches/gcc-6-branch/gcc/tree-ssa-pre.c branches/gcc-6-branch/gcc/tree.c
[Bug tree-optimization/78305] [6 Regression] Wrong constant folding
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78305 --- Comment #8 from Richard Biener --- Author: rguenth Date: Wed Nov 23 14:31:16 2016 New Revision: 242756 URL: https://gcc.gnu.org/viewcvs?rev=242756=gcc=rev Log: 2016-11-23 Richard BienerBackport from mainline 2016-11-23 Richard Biener PR lto/78472 * tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized fields. lto/ * lto.c (hash_canonical_type): Ignore zero-sized fields. * g++.dg/lto/pr78472_0.c: New testcase. * g++.dg/lto/pr78472_1.C: Likewise. 2016-11-17 Richard Biener PR middle-end/78305 * fold-const.c (negate_expr_p): Fix multiplication case. * gcc.dg/torture/pr78305.c: New testcase. 2016-11-16 Richard Biener PR middle-end/78333 * gimplify.c (gimplify_function_tree): Do not instrument GNU extern inline functions. * gcc.dg/pr78333.c: New testcase. 2016-11-07 Richard Biener PR tree-optimization/78228 * tree-ssa-phiopt.c (abs_replacement): Avoid introducing undefined behavior. * gcc.dg/tree-ssa/phi-opt-15.c: New testcase. 2016-11-04 Richard Biener PR middle-end/78185 * loop-invariant.c (find_exits): Record entering inner loops as possibly exiting to handle infinite sub-loops. * tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h. (fill_always_executed_in_1): Honor infinite child loops. * gcc.dg/pr78185.c: New testcase. 2016-10-06 Richard Biener PR tree-optimization/77855 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove instead of removing the current item while iterating over the set which is not safe. * gcc.dg/torture/pr77855.c: New testcase. Added: branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_0.c branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_1.C branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78185.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78333.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr77855.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr78305.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-15.c Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/fold-const.c branches/gcc-6-branch/gcc/gimplify.c branches/gcc-6-branch/gcc/loop-invariant.c branches/gcc-6-branch/gcc/lto/ChangeLog branches/gcc-6-branch/gcc/lto/lto.c branches/gcc-6-branch/gcc/testsuite/ChangeLog branches/gcc-6-branch/gcc/tree-ssa-loop-im.c branches/gcc-6-branch/gcc/tree-ssa-phiopt.c branches/gcc-6-branch/gcc/tree-ssa-pre.c branches/gcc-6-branch/gcc/tree.c
[Bug middle-end/78333] [5/6 Regression] always-inline gnu-inline functions break -finstrument-functions
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78333 --- Comment #6 from Richard Biener --- Author: rguenth Date: Wed Nov 23 14:31:16 2016 New Revision: 242756 URL: https://gcc.gnu.org/viewcvs?rev=242756=gcc=rev Log: 2016-11-23 Richard BienerBackport from mainline 2016-11-23 Richard Biener PR lto/78472 * tree.c (gimple_canonical_types_compatible_p): Ignore zero-sized fields. lto/ * lto.c (hash_canonical_type): Ignore zero-sized fields. * g++.dg/lto/pr78472_0.c: New testcase. * g++.dg/lto/pr78472_1.C: Likewise. 2016-11-17 Richard Biener PR middle-end/78305 * fold-const.c (negate_expr_p): Fix multiplication case. * gcc.dg/torture/pr78305.c: New testcase. 2016-11-16 Richard Biener PR middle-end/78333 * gimplify.c (gimplify_function_tree): Do not instrument GNU extern inline functions. * gcc.dg/pr78333.c: New testcase. 2016-11-07 Richard Biener PR tree-optimization/78228 * tree-ssa-phiopt.c (abs_replacement): Avoid introducing undefined behavior. * gcc.dg/tree-ssa/phi-opt-15.c: New testcase. 2016-11-04 Richard Biener PR middle-end/78185 * loop-invariant.c (find_exits): Record entering inner loops as possibly exiting to handle infinite sub-loops. * tree-ssa-loop-im.c: Include tree-ssa-loop-niter.h. (fill_always_executed_in_1): Honor infinite child loops. * gcc.dg/pr78185.c: New testcase. 2016-10-06 Richard Biener PR tree-optimization/77855 * tree-ssa-pre.c (prune_clobbered_mems): Queue exprs to remove instead of removing the current item while iterating over the set which is not safe. * gcc.dg/torture/pr77855.c: New testcase. Added: branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_0.c branches/gcc-6-branch/gcc/testsuite/g++.dg/lto/pr78472_1.C branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78185.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/pr78333.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr77855.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/torture/pr78305.c branches/gcc-6-branch/gcc/testsuite/gcc.dg/tree-ssa/phi-opt-15.c Modified: branches/gcc-6-branch/gcc/ChangeLog branches/gcc-6-branch/gcc/fold-const.c branches/gcc-6-branch/gcc/gimplify.c branches/gcc-6-branch/gcc/loop-invariant.c branches/gcc-6-branch/gcc/lto/ChangeLog branches/gcc-6-branch/gcc/lto/lto.c branches/gcc-6-branch/gcc/testsuite/ChangeLog branches/gcc-6-branch/gcc/tree-ssa-loop-im.c branches/gcc-6-branch/gcc/tree-ssa-phiopt.c branches/gcc-6-branch/gcc/tree-ssa-pre.c branches/gcc-6-branch/gcc/tree.c