[Bug fortran/85938] Spurious assert failure for matmul with reshaped array
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85938 kargl at gcc dot gnu.org changed: What|Removed |Added Priority|P3 |P4 Status|WAITING |RESOLVED Resolution|--- |FIXED Target Milestone|--- |9.0 --- Comment #3 from kargl at gcc dot gnu.org --- Code has been converted to something suitable for the testsuite and committed. Thanks for the bug report.
[Bug fortran/85938] Spurious assert failure for matmul with reshaped array
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85938 --- Comment #2 from kargl at gcc dot gnu.org --- Author: kargl Date: Sun Jun 3 05:23:59 2018 New Revision: 261125 URL: https://gcc.gnu.org/viewcvs?rev=261125&root=gcc&view=rev Log: 2018-06-02 Steven G. Kargl PR fortran/85938 * gfortran.dg/pr85938.f90: Fixed by revision r261081 Added: trunk/gcc/testsuite/gfortran.dg/pr85938.f90 Modified: trunk/gcc/testsuite/ChangeLog
[Bug target/86031] bootstrap comparison failure on solaris i386
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86031 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE --- Comment #1 from Andrew Pinski --- Dup of bug 85994. *** This bug has been marked as a duplicate of bug 85994 ***
[Bug target/85994] Comparison failure in 64-bit libgcc *_{sav,res}ms64*.o on Solaris/x86
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85994 Andrew Pinski changed: What|Removed |Added CC||subscribe at teskor dot de --- Comment #5 from Andrew Pinski --- *** Bug 86031 has been marked as a duplicate of this bug. ***
[Bug tree-optimization/86035] New: wrong code at -O2 and -O3 on x86_64-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86035 Bug ID: 86035 Summary: wrong code at -O2 and -O3 on x86_64-linux-gnu Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: su at cs dot ucdavis.edu Target Milestone: --- This appears to be a recent regression, and might be the same as or related to PR 86034. $ gcctk -v Using built-in specs. COLLECT_GCC=gcctk COLLECT_LTO_WRAPPER=/home/su/software/tmp/gcc/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/9.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-source-trunk/configure --enable-languages=c,c++,lto --prefix=/home/su/software/tmp/gcc/gcc-trunk --disable-bootstrap Thread model: posix gcc version 9.0.0 20180602 (experimental) [trunk revision 261116] (GCC) $ $ gcctk -O0 small.c; ./a.out $ $ $ gcctk -O2 small.c $ ./a.out Aborted (core dumped) $ - int printf (const char *, ...); struct { int a:2; int b:9; } c = { -1, 0 }; int d, e; void f () { printf (" "); if (d < 1) e = -1; c.b = 0; c.a = e; } int main () { f (); if (c.b != 0) __builtin_abort (); return 0; }
[Bug c++/85761] [8/9 Regression] ICE on invalid in rtl with uncaptured constexpr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85761 --- Comment #2 from Jason Merrill --- Author: jason Date: Sun Jun 3 01:01:47 2018 New Revision: 261121 URL: https://gcc.gnu.org/viewcvs?rev=261121&root=gcc&view=rev Log: PR c++/85761 - ICE with ill-formed use of const outer variable. * expr.c (mark_use): Handle location wrappers. Added: trunk/gcc/testsuite/g++.dg/cpp0x/lambda/lambda-const8.C Modified: trunk/gcc/cp/ChangeLog trunk/gcc/cp/expr.c
[Bug fortran/85996] f951: internal compiler error: gfc_trans_select(): Bad type for case expr.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85996 --- Comment #2 from kargl at gcc dot gnu.org --- Created attachment 44225 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=44225&action=edit reduced testcase
[Bug c++/85739] [8/9 Regression] internal compiler error: in finish_member_declaration, at cp/semantics.c:3057
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85739 Jason Merrill changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org
[Bug tree-optimization/86034] New: wrong code at -Os on x86-64-linux-gnu in 64-bit mode
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86034 Bug ID: 86034 Summary: wrong code at -Os on x86-64-linux-gnu in 64-bit mode Product: gcc Version: unknown Status: UNCONFIRMED Severity: normal Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: su at cs dot ucdavis.edu Target Milestone: --- This appears to be a recent regression. $ gcctk -v Using built-in specs. COLLECT_GCC=gcctk COLLECT_LTO_WRAPPER=/home/su/software/tmp/gcc/gcc-trunk/libexec/gcc/x86_64-pc-linux-gnu/9.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: ../gcc-source-trunk/configure --enable-languages=c,c++,lto --prefix=/home/su/software/tmp/gcc/gcc-trunk --disable-bootstrap Thread model: posix gcc version 9.0.0 20180602 (experimental) [trunk revision 261116] (GCC) $ $ gcctk -O1 small.c; ./a.out $ $ gcctk -Os small.c $ ./a.out Aborted (core dumped) $ --- struct A { int b; int c:24; int d:10; int e; } f; int g; void h () { struct A i = { 0, 0, -1, 0 }; L: f = i; i.d = 0; if (g < 0) goto L; } int main () { h (); if (f.e != 0) __builtin_abort (); return 0; }
[Bug c++/85761] [8/9 Regression] ICE on invalid in rtl with uncaptured constexpr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85761 Jason Merrill changed: What|Removed |Added Status|NEW |ASSIGNED CC||jason at gcc dot gnu.org Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org
[Bug fortran/85996] f951: internal compiler error: gfc_trans_select(): Bad type for case expr.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85996 kargl at gcc dot gnu.org changed: What|Removed |Added Status|UNCONFIRMED |WAITING Last reconfirmed||2018-06-02 CC||kargl at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from kargl at gcc dot gnu.org --- This is a 7000 line piece of code. Please submit a reduced testcase.
[Bug web/65231] Dead link in man page to the status of C99 features
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65231 Gerald Pfeifer changed: What|Removed |Added Status|SUSPENDED |RESOLVED Resolution|--- |WORKSFORME --- Comment #3 from Gerald Pfeifer --- So, this appears to be an issue with the Debian package, not coming from the GCC side of things. Closing this report. Sorry we could not be of further help, Roman.
[Bug web/64549] Add a 404 page
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64549 Gerald Pfeifer changed: What|Removed |Added Status|WAITING |NEW
[Bug web/65231] Dead link in man page to the status of C99 features
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65231 Gerald Pfeifer changed: What|Removed |Added Status|NEW |SUSPENDED CC||gerald at pfeifer dot com
[Bug web/64549] Add a 404 page
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64549 Gerald Pfeifer changed: What|Removed |Added Status|NEW |WAITING CC||gerald at pfeifer dot com
[Bug web/59184] Broken links
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59184 Gerald Pfeifer changed: What|Removed |Added Status|NEW |ASSIGNED CC||gerald at pfeifer dot com
[Bug libstdc++/86013] std::vector::shrink_to_fit() could sometimes use realloc()
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86013 --- Comment #6 from Jan Kratochvil --- (In reply to Marc Glisse from comment #5) > I can't find anywhere a guarantee that realloc doesn't move stuff when the > new size is smaller than the old. In practice it does not. > What would be the point of shrink_to_fit() otherwise? It was created as a > nicer alternative for people who were copying to a new temporary vector and > swapping them. It should be implemented in the most optimal way. ISO C++ standard does not talk about any copying: https://stackoverflow.com/questions/2664051/why-is-shrink-to-fit-non-binding/2664094
[Bug tree-optimization/69615] 0 to limit signed range checks don't always use unsigned compare
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69615 --- Comment #6 from Jakub Jelinek --- For r0_to_imax_1 the following works for me: --- gcc/fold-const.c.jj 2018-05-31 20:53:33.0 +0200 +++ gcc/fold-const.c2018-06-02 18:36:23.795635887 +0200 @@ -5084,6 +5084,35 @@ merge_ranges (int *pin_p, tree *plow, tr tem = high0, high0 = high1, high1 = tem; } + /* If the second range is != high1 where high1 is the type maximum of + the type, try first merging with < high1 range. */ + if (low1 + && high1 + && TREE_CODE (low1) == INTEGER_CST + && (TREE_CODE (TREE_TYPE (low1)) == INTEGER_TYPE + || (TREE_CODE (TREE_TYPE (low1)) == ENUMERAL_TYPE + && known_eq (TYPE_PRECISION (TREE_TYPE (low1)), + GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (low1)) + && tree_int_cst_equal (low1, TYPE_MAX_VALUE (TREE_TYPE (low1))) + && operand_equal_p (low1, high1, 0) + && merge_ranges (pin_p, plow, phigh, in0_p, low0, high0, + !in1_p, NULL_TREE, range_predecessor (low1))) +return true; + + /* Similarly for first range != low0 where low0 is the type minimum of + the type, try first merging with > low0 range. */ + if (low0 + && high0 + && (TREE_CODE (TREE_TYPE (low0)) == INTEGER_TYPE + || (TREE_CODE (TREE_TYPE (low0)) == ENUMERAL_TYPE + && known_eq (TYPE_PRECISION (TREE_TYPE (low0)), + GET_MODE_BITSIZE (TYPE_MODE (TREE_TYPE (low0)) + && tree_int_cst_equal (low0, TYPE_MIN_VALUE (TREE_TYPE (low0))) + && operand_equal_p (low0, high0, 0) + && merge_ranges (pin_p, plow, phigh, !in0_p, range_successor (low0), + NULL_TREE, in1_p, low1, high1)) +return true; + /* Now flag two cases, whether the ranges are disjoint or whether the second range is totally subsumed in the first. Note that the tests below are simplified by the ones above. */ The thing is that we canonicalize < INT_MAX (and <= INT_MAX-1) to != INT_MAX-1 and in the range code we'd better try the first form instead.
[Bug fortran/86033] New: Automated reallocation of empty string array fails with -fcheck=all
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86033 Bug ID: 86033 Summary: Automated reallocation of empty string array fails with -fcheck=all Product: gcc Version: 8.1.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: fortran Assignee: unassigned at gcc dot gnu.org Reporter: m.diehl at mpie dot de Target Milestone: --- The following code fails at runtime with > Fortran runtime error: Different CHARACTER lengths (0/64) in array constructor if I compile with > -fcheck=all in addition to > gfortran -std=f2008ts program test implicit none character(len=64), dimension(:), allocatable :: str64Array character(len=64) :: str64 allocate(str64Array(0),source=str64) ! empty array write(6,*) size(str64Array); flush(6)! gives 0 write(6,*) len(str64Array(0)); flush(6) ! gives 64 str64 ='a' str64Array = [str64Array,str64] ! causes error with -fcheck=all write(6,*) size(str64Array); flush(6)! gives 1 if compiled without -fcheck=all write(6,*) len(str64Array(1)); flush(6) ! gives 64 if compiled without -fcheck=all str64 ='b' str64Array = [str64Array,str64] write(6,*) size(str64Array); flush(6)! gives 2 if compiled without -fcheck=all write(6,*) len(str64Array(1)); flush(6) ! gives 64 if compiled without -fcheck=all write(6,*) len(str64Array(2)); flush(6) ! gives 64 if compiled without -fcheck=all write(6,*) str64Array(1); flush(6)! gives a if compiled without -fcheck=all write(6,*) str64Array(2); flush(6)! gives b if compiled without -fcheck=all end program
[Bug c++/86032] New: non standard copy operator is used for empty class
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86032 Bug ID: 86032 Summary: non standard copy operator is used for empty class Product: gcc Version: 7.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: ihorelo at mail dot ru Target Milestone: --- ~$ g++-7 -v Using built-in specs. COLLECT_GCC=g++-7 COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/7/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 7.3.0-16ubuntu3~16.04.1' --with-bugurl=file:///usr/share/doc/gcc-7/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++ --prefix=/usr --with-gcc-major-version-only --with-as=/usr/bin/x86_64-linux-gnu-as --with-ld=/usr/bin/x86_64-linux-gnu-ld --program-suffix=-7 --program-prefix=x86_64-linux-gnu- --enable-shared --enable-linker-build-id --libexecdir=/usr/lib --without-included-gettext --enable-threads=posix --libdir=/usr/lib --enable-nls --with-sysroot=/ --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-libmpx --enable-plugin --with-system-zlib --with-target-system-zlib --enable-objc-gc=auto --enable-multiarch --disable-werror --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix gcc version 7.3.0 (Ubuntu 7.3.0-16ubuntu3~16.04.1) code: struct Empty { Empty& operator=(const Empty&) = default; }; template class ShowType; int main() { ShowType example; } g++-7 shows this error: error: aggregate ‘ShowType example’ has incomplete type and cannot be defined ShowType example; type of "example" is ShowType, but it should be ShowType
[Bug tree-optimization/86029] gcc -O3 make very slow product
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86029 H.J. Lu changed: What|Removed |Added Status|UNCONFIRMED |WAITING Last reconfirmed||2018-06-02 CC||hjl.tools at gmail dot com Ever confirmed|0 |1 --- Comment #4 from H.J. Lu --- Since you used -march=native, please show the output of # gcc -Ofast -march=native rx.c -lm -o rx-gcc-Ofast -v
[Bug c++/85873] [8/9 regression] GCC omits array constant in .rodata causing a segmentation fault.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85873 --- Comment #6 from Kimon.Hoffmann at lawo dot com --- Thanks for investigating this report and clarifying the underlying issue! I was afraid that this was a case of UB, but was misled by the cited standard section that mentioned lifetime extension of the underlying array. The situation as it stands is unfortunate though, since the standard does not allow "static constexpr" variables in constexpr functions. Therefor I don't see a standards compliant way to: return a constant array from a function (the choice of which array to return possibly depending on a function argument) that: * Provides type erasure on the length of the returned array. * Works in constexpr contexts. * Does not copy values during runtime. Anyway, thanks again for clarifying and I welcome the newly introduced warning as it will probably catch a few usage errors that would be hard to find otherwise.
[Bug fortran/85938] Spurious assert failure for matmul with reshaped array
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85938 Dominique d'Humieres changed: What|Removed |Added Status|UNCONFIRMED |WAITING Last reconfirmed||2018-06-02 CC||kargl at gcc dot gnu.org, ||pault at gcc dot gnu.org Ever confirmed|0 |1 --- Comment #1 from Dominique d'Humieres --- This seems to have been fixed recently, likely revision r261081 on trunk and r261099 on 8.1.1 for PRs 85816 and 85975.
[Bug tree-optimization/69615] 0 to limit signed range checks don't always use unsigned compare
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69615 --- Comment #5 from Peter Cordes --- Update: https://godbolt.org/g/ZQDY1G gcc7/8 optimizes this to and / cmp / jb, while gcc6.3 doesn't. void rangecheck_var(int64_t x, int64_t lim2) { //lim2 >>= 60; lim2 &= 0xf; // let the compiler figure out the limited range of limit if (x>=0 && x=0 && x<=(INT_MAX-1)) ext(); } // clang and gcc use 2 branches