[Bug tree-optimization/115704] -Wstringop-overread and related warnings should print inline stack
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115704 Andrew Pinski changed: What|Removed |Added Blocks||97048 --- Comment #1 from Andrew Pinski --- There is another one about this already. Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97048 [Bug 97048] [meta-bug] bogus/missing -Wstringop-overread warnings
[Bug tree-optimization/82450] loop flattening should be done
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82450 --- Comment #5 from Andrew Pinski --- (In reply to Andrew Pinski from comment #4) > (In reply to Richard Biener from comment #2) > > We once had a very aggressive pass to do this as part of graphite > > transforms, > > it's on the GCC 4.7 branch. > > https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/graphite-flattening.c; > h=33f25e01b03f680493f0b396a81cc8e421598a8c;hb=refs/heads/releases/gcc-4.7 > > For reference. https://gcc.gnu.org/pipermail/gcc-patches/2010-September/293708.html
[Bug tree-optimization/82450] loop flattening should be done
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82450 --- Comment #4 from Andrew Pinski --- (In reply to Richard Biener from comment #2) > We once had a very aggressive pass to do this as part of graphite transforms, > it's on the GCC 4.7 branch. https://gcc.gnu.org/git/?p=gcc.git;a=blob;f=gcc/graphite-flattening.c;h=33f25e01b03f680493f0b396a81cc8e421598a8c;hb=refs/heads/releases/gcc-4.7 For reference.
[Bug tree-optimization/82450] loop flattening should be done
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=82450 Andrew Pinski changed: What|Removed |Added See Also||https://github.com/llvm/llv ||m-project/issues/39927 Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot gnu.org Status|NEW |ASSIGNED --- Comment #3 from Andrew Pinski --- So LLVM got a loop flattening pass in October 2020. I think I am going to try to get a version into GCC for 15 then. It improves coremarks: https://github.com/eembc/coremark/blob/main/core_matrix.c#L242
[Bug target/115703] [15 Regression] rv64gcv_zvl256b miscompile since r15-1579-g792f97b44ff
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115703 Andrew Pinski changed: What|Removed |Added Target|riscv*-*-* | --- Comment #1 from Andrew Pinski --- Note one thing is mvconst_internal should most likely also be hidden post reload too due to the same reason: ;; Hide it from IRA register equiv recog* () to elide potential undoing of split But that does not seem like the cause. The only different in asm between 14 and 15 are where a load happens. GCC 14: ``` vsetvli zero,zero,e64,m1,ta,ma vmul.vv v1,v1,v4 vlm.v v15,0(s1) vsetvli zero,zero,e32,mf2,ta,ma vredmin.vs v16,v16,v14 vsetvli zero,zero,e64,m1,ta,ma vmul.vv v1,v1,v4 vmv1r.v v0,v15 vmul.vv v1,v1,v4 vsetivlizero,0,e32,m1,ta,ma vmv.x.s t1,v16 vsetivlizero,4,e64,m1,ta,ma vmul.vv v1,v1,v4 ``` GCC 15: ``` vsetvli zero,zero,e64,m1,ta,ma vmul.vv v1,v1,v4 vsetvli zero,zero,e32,mf2,ta,ma vredmin.vs v16,v16,v14 vsetvli zero,zero,e64,m1,ta,ma vmul.vv v1,v1,v4 vmul.vv v1,v1,v4 vsetivlizero,0,e32,m1,ta,ma vmv.x.s t1,v16 vsetivlizero,4,e64,m1,ta,ma vmul.vv v1,v1,v4 vlm.v v0,0(s1) ``` That is combining: ``` (insn 397 630 406 13 (set (reg:V4BI 111 v15 [517]) (mem/u/c:V4BI (reg/f:DI 9 s1 [565]) [0 S1 A8])) 3012 {*movv4bi} (expr_list:REG_EQUAL (const_vector:V4BI [ (const_int 0 [0]) repeated x2 (const_int 1 [0x1]) repeated x2 ]) (nil))) (insn 864 862 399 13 (set (reg:V4BI 96 v0 [517]) (reg:V4BI 111 v15 [517])) 3012 {*movv4bi} (nil)) ``` Into: ``` (insn 864 862 399 13 (set (reg:V4BI 96 v0 [517]) (mem/u/c:V4BI (reg/f:DI 9 s1 [565]) [0 S1 A8])) 3012 {*movv4bi} (nil)) ``` I don't see anything wrong with this move on RTL. Maybe there is something wrong going on the pass which is emitting the vsetivli instructions.
[Bug target/115703] [15 Regression] rv64gcv_zvl256b miscompile since r15-1579-g792f97b44ff
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115703 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |15.0 Component|middle-end |target Keywords||wrong-code
[Bug c++/115699] Anonymous structs should compare member-wise with C++20 defaulted operator==
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115699 --- Comment #2 from Andrew Pinski --- I should note clang produce the operator== but maybe incorrectly because the static_assert fails ...
[Bug c++/115699] Anonymous structs should compare member-wise with C++20 defaulted operator==
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115699 --- Comment #1 from Andrew Pinski --- So GCC is treating anonymous struct similar to anonymous unions.
[Bug c++/115695] spurious warning for -Wsign-compare with c++
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115695 --- Comment #1 from Andrew Pinski --- Reduced testcase: ``` int f() { short a = 0; return (unsigned)a * sizeof(short); } ``` The warning in GCC 9 and before was: ``` :4:16: warning: conversion to 'long unsigned int' from 'short int' may change the sign of the result [-Wsign-conversion] ``` I think that is wrong too. Looks like the warning is happening after some optimization moving the multiply and then giving the wrong types incorrectly.
[Bug tree-optimization/115694] [13/14/15 regression] ICE in forwprop (useless_type_conversion_p) when building scipy with LTO
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115694 Andrew Pinski changed: What|Removed |Added See Also||https://gcc.gnu.org/bugzill ||a/show_bug.cgi?id=109046 --- Comment #9 from Andrew Pinski --- I suspect r13-6624-geb337d28c32b1b introduced this issue. Also I can't get non-semi defined testcase here, I tried a few different things to produce a VCE but I can't get it produced.
[Bug tree-optimization/115694] [13/14/15 regression] ICE in forwprop (useless_type_conversion_p) when building scipy with LTO
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115694 Andrew Pinski changed: What|Removed |Added Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed||2024-06-28 --- Comment #8 from Andrew Pinski --- Before forwprop3: a.0_1 = COMPLEX_EXPR <_3, _7>; f = VIEW_CONVERT_EXPR(a.0_1); Afterwards: struct b f; REALPART_EXPR = _3; IMAGPART_EXPR = _7; e (f); Let me try to come up with a better testcase.
[Bug tree-optimization/115694] [13/14/15 regression] ICE in forwprop (useless_type_conversion_p) when building scipy with LTO
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115694 Andrew Pinski changed: What|Removed |Added Known to work||12.3.0 Known to fail||13.1.0, 13.3.0 Keywords||needs-bisection Target Milestone|--- |13.4
[Bug tree-optimization/35356] Missing Index splitting support in gcc
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35356 Andrew Pinski changed: What|Removed |Added Blocks||26163 CC||pinskia at gcc dot gnu.org --- Comment #3 from Andrew Pinski --- Case 3 is still not handled by lsplit. The rest might be handled by lsplit but I have not tested it yet. Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26163 [Bug 26163] [meta-bug] missed optimization in SPEC (2k17, 2k and 2k6 and 95)
[Bug tree-optimization/115697] [11/12/13/14/15 Regression] Miscompilation with -fgraphite-identity at -O2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115697 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |11.5
[Bug driver/115698] @file invalidates -B in g++ command line
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115698 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2024-06-28 Ever confirmed|0 |1 Status|UNCONFIRMED |WAITING --- Comment #2 from Andrew Pinski --- I also just tried it with the upstream version of GCC: ``` [apinski@xeond2 upstream-gcc-new]$ ~/upstream-gcc-new/bin/gcc @re -B mydir/ my ld [apinski@xeond2 upstream-gcc-new]$ cat mydir/ld #!/bin/bash echo my ld exit 0 [apinski@xeond2 upstream-gcc-new]$ ~/upstream-gcc-new/bin/gcc @re -B `pwd`/mydir/ my ld [apinski@xeond2 upstream-gcc-new]$ !ch chmod u+x mydir/ld [apinski@xeond2 upstream-gcc-new]$ cat re t.o [apinski@xeond2 upstream-gcc-new]$ ~/upstream-gcc-new/bin/g++ @re -B `pwd`/mydir/ my ld [apinski@xeond2 upstream-gcc-new]$ ~/upstream-gcc-new/bin/g++ -o tt @re -B `pwd`/mydir/ my ld ``` Works for me. Try to doing strace to see if the B directories are searched. I even tried ubuntu's 11.4.0 and it worked: ``` apinski@xeond:~/src/upstream-gcc-new$ ~/upstream-gcc-match/bin/gcc -o @re -B `pwd`/mydir my ld apinski@xeond:~/src/upstream-gcc-new$ gcc -o @re -B `pwd`/mydir my ld apinski@xeond:~/src/upstream-gcc-new$ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/11/lto-wrapper OFFLOAD_TARGET_NAMES=nvptx-none:amdgcn-amdhsa OFFLOAD_TARGET_DEFAULT=1 Target: x86_64-linux-gnu Configured with: ../src/configure -v --with-pkgversion='Ubuntu 11.4.0-1ubuntu1~22.04' --with-bugurl=file:///usr/share/doc/gcc-11/README.Bugs --enable-languages=c,ada,c++,go,brig,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-11 --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 --enable-bootstrap --enable-clocale=gnu --enable-libstdcxx-debug --enable-libstdcxx-time=yes --with-default-libstdcxx-abi=new --enable-gnu-unique-object --disable-vtable-verify --enable-plugin --enable-default-pie --with-system-zlib --enable-libphobos-checking=release --with-target-system-zlib=auto --enable-objc-gc=auto --enable-multiarch --disable-werror --enable-cet --with-arch-32=i686 --with-abi=m64 --with-multilib-list=m32,m64,mx32 --enable-multilib --with-tune=generic --enable-offload-targets=nvptx-none=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-XeT9lY/gcc-11-11.4.0/debian/tmp-gcn/usr --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu --with-build-config=bootstrap-lto-lean --enable-link-serialization=2 Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04) ```
[Bug driver/115698] @file invalidates -B in g++ command line
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115698 --- Comment #1 from Andrew Pinski --- So I looked into the driver code and '@' handling is early on and just expands into the new arguments.
[Bug tree-optimization/88443] [meta-bug] bogus/missing -Wstringop-overflow warnings
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88443 Bug 88443 depends on bug 115702, which changed state. Bug 115702 Summary: Incorrect stringop-overflow warning with -O3 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115702 What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE
[Bug tree-optimization/115274] Bogus -Wstringop-overread in SQLite source code
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115274 Andrew Pinski changed: What|Removed |Added CC||christian at zeek dot org --- Comment #5 from Andrew Pinski --- *** Bug 115702 has been marked as a duplicate of this bug. ***
[Bug tree-optimization/115702] Incorrect stringop-overflow warning with -O3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115702 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE --- Comment #1 from Andrew Pinski --- Dup. *** This bug has been marked as a duplicate of bug 115274 ***
[Bug ipa/115701] [11/12/13/14/15 Regression] wrong code at -O1 and above with "-fipa-pta" on x86_64-linux-gnu
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115701 Andrew Pinski changed: What|Removed |Added Summary|wrong code at -O1 and above |[11/12/13/14/15 Regression] |with "-fipa-pta" on |wrong code at -O1 and above |x86_64-linux-gnu|with "-fipa-pta" on ||x86_64-linux-gnu Status|UNCONFIRMED |NEW Last reconfirmed||2024-06-28 Keywords||alias, wrong-code Known to work||9.5.0 Target Milestone|--- |11.5 Known to fail||10.1.0 Ever confirmed|0 |1 --- Comment #1 from Andrew Pinski --- Confirmed.
[Bug c++/115692] C++ module ice
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115692 --- Comment #2 from Andrew Pinski --- Or attach the preprocessed source split correctly.
[Bug c++/115692] C++ module ice
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115692 Andrew Pinski changed: What|Removed |Added Ever confirmed|0 |1 Last reconfirmed||2024-06-27 Status|UNCONFIRMED |WAITING --- Comment #1 from Andrew Pinski --- [apinski@xeond2 upstream-gcc-new]$ ~/upstream-gcc-new/bin/gcc t.ii -std=c++20 -w -fmodules-ts ../modules/fast_io_core_impl.cppm:1:1: error: module-declaration only permitted as first declaration, or ending a global module fragment ../modules/fast_io_core_impl.cppm:3:1: error: post-module-declaration imports must be contiguous ../modules/fast_io_core_impl.cppm:3:1: note: perhaps insert a line break after ‘import’, or other disambiguation, to prevent this being considered a module control-line In file included from /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/include/c++/15.0.0/type_traits:38, from ../modules/fast_io_core_impl.cppm:5: /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/include/c++/15.0.0/x86_64-pc-linux-gnu/bits/c++config.h:321:15: error: redefinition of ‘void std::__terminate()’ In file included from /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/include/c++/15.0.0/cstdint:38, from ../modules/fast_io_core.ixx:2: /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/include/c++/15.0.0/x86_64-pc-linux-gnu/bits/c++config.h:321:15: note: ‘void std::__terminate()’ previously defined here /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/include/c++/15.0.0/x86_64-pc-linux-gnu/bits/c++config.h:554:3: error: redefinition of ‘constexpr bool std::__is_constant_evaluated()’ /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/include/c++/15.0.0/x86_64-pc-linux-gnu/bits/c++config.h:554:3: note: ‘constexpr bool std::__is_constant_evaluated()’ previously defined here /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/include/c++/15.0.0/x86_64-pc-linux-gnu/bits/c++config.h:616:3: error: redefinition of ‘void std::__glibcxx_assert_fail()’ /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/include/c++/15.0.0/x86_64-pc-linux-gnu/bits/c++config.h:616:3: note: ‘void std::__glibcxx_assert_fail()’ previously defined here In file included from /usr/include/stdint.h:27, from /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/15.0.0/include/stdint.h:9, from /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/include/c++/15.0.0/cstdint:45, from ../modules/fast_io_core_impl.cppm:5: /usr/include/bits/types.h:155:34: error: conflicting declaration ‘typedef struct __fsid_t __fsid_t’ 155 | __STD_TYPE __FSID_T_TYPE __fsid_t; /* Type of file system IDs. */ | ^ In file included from /usr/include/stdint.h:27, from /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/lib/gcc/x86_64-pc-linux-gnu/15.0.0/include/stdint.h:9, from /home/cqwrteur/toolchains/x86_64-pc-linux-gnu/x86_64-pc-linux-gnu/include/c++/15.0.0/cstdint:45: /usr/include/bits/types.h:155:34: note: previous declaration as ‘typedef struct __fsid_t __fsid_t’ 155 | __STD_TYPE __FSID_T_TYPE __fsid_t; /* Type of file system IDs. */ | ^ hello.cc:2:1: error: post-module-declaration imports must be contiguous hello.cc:2:1: note: perhaps insert a line break after ‘import’, or other disambiguation, to prevent this being considered a module control-line hello.cc:4:5: error: cannot attach ‘::main’ to a named module Looks like you need to provide a few more preprocessed source for the other module.
[Bug target/115691] [15 Regression] libgomp.c-c++-common/for -2.h:101:33: internal compiler error: in extract_insn, at recog.cc:2816
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115691 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2024-06-27 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #1 from Andrew Pinski --- (define_insn "" [(set (match_operand:DI 0 "register_operand" "=f") (mult:DI (zero_extend:DI (match_operand:SI 1 "register_operand" "f")) (match_operand:DI 2 "uint32_operand" "f")))] "TARGET_PA_11 && ! TARGET_SOFT_FLOAT && ! TARGET_SOFT_MULT && TARGET_64BIT" "xmpyu %1,%2R,%0" [(set_attr "type" "fpmuldbl") (set_attr "length" "4")]) (define_predicate "uint32_operand" (if_then_else (match_test "HOST_BITS_PER_WIDE_INT > 32") (and (match_code "const_int") (match_test "INTVAL (op) >= 0 && INTVAL (op) < (HOST_WIDE_INT) 1 << 32")) (and (match_code "const_int,const_double") (match_test "CONST_INT_P (op) || CONST_DOUBLE_HIGH (op) == 0" (define_register_constraint "f" "FP_REGS" "Floating-point register.") Huh? The predicate and the constraints are not subset of each other at all. I don't see how that could work before hand. This was most like exposed by late-combine (r15-1579-g792f97b44ffc5e). Note there is some cleanup since HOST_BITS_PER_WIDE_INT is always 64 for a long time now (maybe >= 10 years).
[Bug target/115691] [15 Regression] libgomp.c-c++-common/for -2.h:101:33: internal compiler error: in extract_insn, at recog.cc:2816
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115691 Andrew Pinski changed: What|Removed |Added Target||hppa-linux-gnu Summary|libgomp.c-c++-common/for|[15 Regression] |-2.h:101:33: internal |libgomp.c-c++-common/for |compiler error: in |-2.h:101:33: internal |extract_insn, at|compiler error: in |recog.cc:2816 |extract_insn, at ||recog.cc:2816 Keywords||ice-on-valid-code Component|rtl-optimization|target Target Milestone|--- |15.0
[Bug target/115690] Strange codegen for small fixed-size `memcpy` when targeting `-march=i486`
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115690 Andrew Pinski changed: What|Removed |Added Known to work||6.1.0 --- Comment #1 from Andrew Pinski --- First off I am not sure if -march=i486 even is even tuned these days. Or even why someone is trying to use it. Especially considering this changed in GCC 7.
[Bug c++/115670] auto placeholder for return type should change the linkage of the function if the type becomes local linkage too
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115670 --- Comment #6 from Andrew Pinski --- (In reply to Andrew Pinski from comment #5) > So at -O1, foo0, foo5, foo6 are the only ones left. > > at -O0, foo1, foo2, foo3, foo4 are also emitted but that is expected since > GCC emits static unused functions always at -O0. > > > So let's keep this for foo0/foo5. I will file one for foo6 in a second. Note if the definition of the anonymous namespace is in a header, then GCC does warn for s2 (not for foo6 though).
[Bug c++/115670] auto placeholder for return type should change the linkage of the function if the type becomes local linkage too
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115670 --- Comment #5 from Andrew Pinski --- So at -O1, foo0, foo5, foo6 are the only ones left. at -O0, foo1, foo2, foo3, foo4 are also emitted but that is expected since GCC emits static unused functions always at -O0. So let's keep this for foo0/foo5. I will file one for foo6 in a second.
[Bug c++/115676] [c++11-C++14] gcc allows invalid calling to implicitly-deleted default constructor of a template derived class (non-dependent) in template function
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115676 --- Comment #2 from Andrew Pinski --- Yes see https://gcc.gnu.org/bugzilla/show_bug.cgi?id=55361#c5 for that ...
[Bug c++/115676] [c++11-C++14] gcc allows invalid calling to implicitly-deleted default constructor of a template derived class (non-depdenent) in template function
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115676 Andrew Pinski changed: What|Removed |Added Summary|gcc allows invalid calling |[c++11-C++14] gcc allows |to implicitly-deleted |invalid calling to |default constructor of a|implicitly-deleted default |template derived class in |constructor of a template |template function |derived class ||(non-depdenent) in template ||function CC||pinskia at gcc dot gnu.org --- Comment #1 from Andrew Pinski --- Actually I think this is just QoI case. IIRC the compiler does not require error out if inside a template only if it is instantiated.
[Bug tree-optimization/115679] inlining failed in call to 'foo': function not considered for inlining
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115679 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2024-06-27 Ever confirmed|0 |1 Status|UNCONFIRMED |WAITING --- Comment #3 from Andrew Pinski --- Can you provide the preprocessed source?
[Bug target/115687] RISC-V optimization when "lui" instructions can be merged
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115687 --- Comment #3 from Andrew Pinski --- (In reply to Andrew Pinski from comment #2) > There is some code in cse.cc which does handle this. > See > https://gcc.gnu.org/onlinedocs/gccint/Misc.html#index- > TARGET_005fCONST_005fANCHOR also. MIPS, aarch64 and rs6000 all define TARGET_CONST_ANCHOR (well MIPS sets targetm.const_anchor depending on if it is mips16/micromips or mips32/64).
[Bug target/115687] RISC-V optimization when "lui" instructions can be merged
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115687 --- Comment #2 from Andrew Pinski --- There is some code in cse.cc which does handle this. See https://gcc.gnu.org/onlinedocs/gccint/Misc.html#index-TARGET_005fCONST_005fANCHOR also.
[Bug c/115684] No warning for pointer and enum field comparison
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115684 Andrew Pinski changed: What|Removed |Added Ever confirmed|0 |1 Last reconfirmed||2024-06-27 Status|UNCONFIRMED |NEW Severity|normal |enhancement --- Comment #4 from Andrew Pinski --- C++ has -Wzero-as-null-pointer-constant . Maybe it should be added for C also for at least C23 where nullptr exists now. Note for C++, the enum value is NOT considered a null ptr. That is different from C though.
[Bug c/112556] Null pointer constants with enumeration type are not accepted
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=112556 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2024-06-27 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #3 from Andrew Pinski --- Confirmed a bug by JSM already.
[Bug c/115684] No warning for pointer and enum field comparison
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115684 Andrew Pinski changed: What|Removed |Added Keywords||diagnostic --- Comment #3 from Andrew Pinski --- (In reply to Eric Gallager from comment #2) > So, it depends on the value of the enumerator, it seems. Yes because it depends on what can be considered a null pointer.
[Bug c++/102398] thread_local works incorrectly outside of main file
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102398 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE --- Comment #3 from Andrew Pinski --- Dup. *** This bug has been marked as a duplicate of bug 81915 ***
[Bug target/81915] bug with thread_local inline variables
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81915 --- Comment #6 from Andrew Pinski --- *** Bug 102398 has been marked as a duplicate of this bug. ***
[Bug target/81915] bug with thread_local inline variables
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81915 Andrew Pinski changed: What|Removed |Added CC||MacroModel at trajectronix dot onm ||icrosoft.com --- Comment #5 from Andrew Pinski --- *** Bug 115686 has been marked as a duplicate of this bug. ***
[Bug target/115686] gcc cannot generate weak link function for thread_local variable `TLS init function`
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115686 --- Comment #2 from Andrew Pinski --- Really dup of bug 81915. *** This bug has been marked as a duplicate of bug 81915 ***
[Bug target/115686] gcc cannot generate weak link function for thread_local variable `TLS init function`
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115686 Andrew Pinski changed: What|Removed |Added Resolution|--- |DUPLICATE Status|UNCONFIRMED |RESOLVED --- Comment #1 from Andrew Pinski --- Dup of at least bug 102398 . *** This bug has been marked as a duplicate of bug 102398 ***
[Bug c++/102398] thread_local works incorrectly outside of main file
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102398 Andrew Pinski changed: What|Removed |Added CC||MacroModel at trajectronix dot onm ||icrosoft.com --- Comment #2 from Andrew Pinski --- *** Bug 115686 has been marked as a duplicate of this bug. ***
[Bug rtl-optimization/90343] ICE: in verify_dominators, at dominance.c:1184 (error: dominator of 7 status unknown)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=90343 --- Comment #3 from Andrew Pinski --- Note changing the definition of initializer_list to: ``` template class initializer_list { public: const int *i2 () { return uk; } const int *w2 () { return uk + in; } private: const E *uk; unsigned long int in; }; ``` Allows clang to accept the code. I will file a bug about (maybe) accepting an invalid version of initializer_list later today.
[Bug c++/79424] dtor synthesized before abstractness correctly determined
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=79424 Andrew Pinski changed: What|Removed |Added See Also||https://gcc.gnu.org/bugzill ||a/show_bug.cgi?id=79393 --- Comment #2 from Andrew Pinski --- (In reply to Andrew Pinski from comment #1) > Confirmed, looks like only clang gets this right. In that MSVC, GCC and EDG all reject this. Maybe there is a defect report since only 1 out of 4 compilers have the behavior that is reported here ...
[Bug tree-optimization/115659] powerpc fallout from removing vcond{,u,eq} patterns
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115659 --- Comment #6 from Andrew Pinski --- (In reply to Kewen Lin from comment #5) > (In reply to Andrew Pinski from comment #2) > > Note I think this could help scalar code too: > > ``` > > int a[1], b[1], c[1]; > > > > void > > test (void) > > { > > a[0] = (b[0] == c[0]) ? -1 : a[0]; > > } > > > > void > > test1 (void) > > { > > a[0] = (-(b[0] == c[0])) | a[0]; > > } > > > > ``` > > > > Good catch! > > > So this could be something like: > > ``` > > (simplify > > (cond @0 @1 integer_all_ones_p) > > (bit_ior (negate (convert @0)) @1)) > > (simplify > > (vec_cond @0 @1 integer_all_ones_p) > > (bit_ior (view_convert @0) @1)) > > ``` > > Missing negate for the vector one? No because vector true is already -1 :).
[Bug tree-optimization/115214] tree-ssa-pre.c(ICE in find_or_generate_expression, at tree-ssa-pre.c:2780)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115214 --- Comment #3 from Andrew Pinski --- (In reply to jiawei from comment #2) > Fixed on upstream. > > https://gcc.gnu.org/pipermail/gcc-patches/2024-May/652806.html Since you backported the fix for GCC 14.2.0 (r14-10350-g6e6f10c3ad6f96752acd9c35b653b387d5c3fcf6), can you backport the aarch64 specific testcase (r15-1387-g17979deb15d34dd4) too?
[Bug middle-end/115674] "Checking if number is within interval" missed optimization when number is from a smaller int type
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115674 Andrew Pinski changed: What|Removed |Added Component|tree-optimization |middle-end --- Comment #1 from Andrew Pinski --- Worse: _1 = x_3(D) + 62; _6 = _1 <= 50; Decent code: value_4 = (uint32_t) x_3(D); _1 = value_4 + 4294967102; _7 = _1 <= 50; I think there is a dup somewhere ...
[Bug rtl-optimization/115673] [15 regression] gcc.target/i386/force-indirect-call-2.c test failure
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115673 Andrew Pinski changed: What|Removed |Added Component|target |rtl-optimization Last reconfirmed||2024-06-27 CC||pinskia at gcc dot gnu.org Status|UNCONFIRMED |NEW Target Milestone|--- |15.0 Ever confirmed|0 |1 Keywords||missed-optimization, ra --- Comment #2 from Andrew Pinski --- https://gcc.gnu.org/pipermail/gcc-patches/2024-June/655721.html r15-1619-g3b9b8d6cfdf593
[Bug c++/24666] [meta-bug] array decaying to pointers
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24666 Bug 24666 depends on bug 115594, which changed state. Bug 115594 Summary: requires expression permits arrays of voids https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115594 What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE
[Bug c++/67491] [meta-bug] concepts issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67491 Bug 67491 depends on bug 115594, which changed state. Bug 115594 Summary: requires expression permits arrays of voids https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115594 What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE
[Bug c++/24664] Template instantiation generating an array of voids doesn't fail
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24664 Andrew Pinski changed: What|Removed |Added CC||fchelnokov at gmail dot com --- Comment #7 from Andrew Pinski --- *** Bug 115594 has been marked as a duplicate of this bug. ***
[Bug c++/115594] requires expression permits arrays of voids
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115594 Andrew Pinski changed: What|Removed |Added Resolution|--- |DUPLICATE Status|UNCONFIRMED |RESOLVED --- Comment #3 from Andrew Pinski --- Yes it is a dup. The following should also be rejected but currently is not: ``` template int f(T*); int j=f(nullptr); ``` Basically function arguments (including concepts "arguments") decay too early for arrays to pointers. *** This bug has been marked as a duplicate of bug 24664 ***
[Bug target/115643] [15 regression] aarch64-w64-mingw32 support today breaks x86_64-w64-mingw32 build cannot represent relocation type BFD_RELOC_64 since r15-1602-ged20feebd9ea31
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115643 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |15.0 Keywords||link-failure
[Bug c++/115672] [11/12/13/14/15 Regression] Incorrect template type parameter deduced in non-deduced context if class template has template template parameter
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115672 Andrew Pinski changed: What|Removed |Added Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed||2024-06-27 --- Comment #5 from Andrew Pinski --- .
[Bug c++/115672] [11/12/13/14/15 Regression] Incorrect template type parameter deduced in non-deduced context if class template has template template parameter
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115672 Andrew Pinski changed: What|Removed |Added Attachment #58527|0 |1 is obsolete|| --- Comment #4 from Andrew Pinski --- Created attachment 58528 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=58528=edit Reduced further The second t argument type in the template definition is the key I think. Changing it to just class allows the testcase to work.
[Bug c++/115672] [11/12/13/14/15 Regression] Incorrect template type parameter deduced in non-deduced context if class template has template template parameter
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115672 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |11.5 Summary|Incorrect template type |[11/12/13/14/15 Regression] |parameter deduced in|Incorrect template type |non-deduced context if |parameter deduced in |class template has template |non-deduced context if |template parameter |class template has template ||template parameter
[Bug c++/115672] Incorrect template type parameter deduced in non-deduced context if class template has template template parameter
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115672 --- Comment #3 from Andrew Pinski --- Created attachment 58527 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=58527=edit Remove the inline and change the static_assert to what other compilers should do
[Bug tree-optimization/115636] Missing optimzation: fold ` (w << (unsigned int)((flag ? a : b) - 32768))` to ` flag ? w << (unsigned int)(a - 32768) : 0 `
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115636 --- Comment #3 from Andrew Pinski --- So looking at what LLVM does (Note it does not handle the original case here). It only handles the simple: `1 << (a ? b : 1000)` cases. That is: ``` int f0(int a, int b) { if (a) b = 1000; int t = 1 << b; return t; } ``` is optimized to `1 << b` without the condition. But once you add something more complex in the condition, it does not do anything: ``` int g(); int f1(int a, int b) { if (a) b = 1000; else b = g(); int t = 1 << b; g(); return t; } int f2(int a, int b) { if (a) b = 1000; else g(); int t = 1 << b; g(); return t; } ``` changing f0 to be: ``` if (a) t = 0; else t = 1 << b; ``` Generates worse code for that. I have to think this one through a little more I think ... undefined behavior is fun.
[Bug tree-optimization/115669] [15 Regression] rv64gcv -fwrapv miscompile since r15-1006-gd93353e6423
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115669 Andrew Pinski changed: What|Removed |Added Ever confirmed|0 |1 Target|riscv*-*-* |riscv*-*-* ||aarch64-linux-gnu Status|UNCONFIRMED |NEW Last reconfirmed||2024-06-26 --- Comment #2 from Andrew Pinski --- Confirmed. Also reproduced for aarch64: [apinski@xeond2 upstream-full-cross]$ ./install/bin/aarch64-linux-gnu-gcc -O3 -march=armv9-a+sve2 -fno-vect-cost-model t67.c -static -O0 [apinski@xeond2 upstream-full-cross]$ ./install-qemu/bin/qemu-aarch64 a.out -10 [apinski@xeond2 upstream-full-cross]$ ./install/bin/aarch64-linux-gnu-gcc -O3 -march=armv9-a+sve2 -fno-vect-cost-model t67.c -static -fwrapv [apinski@xeond2 upstream-full-cross]$ ./install-qemu/bin/qemu-aarch64 a.out -16
[Bug tree-optimization/115669] [15 Regression] rv64gcv -fwrapv miscompile since r15-1006-gd93353e6423
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115669 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |15.0 CC||pinskia at gcc dot gnu.org
[Bug c++/115670] auto return type does not change the linkage for local structs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115670 --- Comment #2 from Andrew Pinski --- Simplified case too: ``` auto bar(){ struct {int i;} t; t.i = 0; return t; } ``` This should be local linkage. Another testcase: ``` namespace { struct a {int t = 12;}; } auto bar(){ struct a t; return t; } ```
[Bug tree-optimization/115663] outer loop vectorization with inner loop grouped access and SLP should be possible
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115663 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Severity|normal |enhancement Last reconfirmed||2024-06-26 --- Comment #1 from Andrew Pinski --- Confirmed.
[Bug c++/115670] auto return type does not change the linkage for anonymous structs
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115670 Andrew Pinski changed: What|Removed |Added Keywords||missed-optimization Ever confirmed|0 |1 Summary|missed optimization - dead |auto return type does not |code elimination for|change the linkage for |anonymous structures|anonymous structs Status|UNCONFIRMED |NEW Severity|normal |enhancement Last reconfirmed||2024-06-26 --- Comment #1 from Andrew Pinski --- Confirmed. Doing: ``` decltype(a) bar(){ return a; } ``` GCC is able to change the linkage of bar. it is just auto which is not handled.
[Bug tree-optimization/115669] [15 Regression] rv64gcv -fwrapv miscompile since r15-1006-gd93353e6423
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115669 Andrew Pinski changed: What|Removed |Added See Also||https://gcc.gnu.org/bugzill ||a/show_bug.cgi?id=115450 --- Comment #1 from Andrew Pinski --- (In reply to Patrick O'Neill from comment #0) > Found via fuzzer but Vineet bisected the 502.gcc_r benchmark breakage in > spec2017 for the riscv target to the same commit so this _might_ be the same > issue. So the 502.gcc_r miscompile might be PR 115450 since that is for aarch64 SVE even.
[Bug c++/115664] -Wnonnull-compare breaks templated methods
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115664 --- Comment #5 from Andrew Pinski --- Basically `dynamic_cast(this)` becomes just this if `T == Object` here and then we warn because this is compared with nullptr.
[Bug c++/115664] -Wnonnull-compare breaks templated methods
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115664 Andrew Pinski changed: What|Removed |Added Status|WAITING |NEW --- Comment #4 from Andrew Pinski --- Oh I take that back here is the testcase which shows the warning: ``` struct Object { template void method(void (*callback)(T*)); virtual void g(); }; template void Object::method(void (*)(T*)) { if (dynamic_cast(this) == nullptr) throw 1; } void c(Object*); void f(Object *a) { a->method(c); } ``` I didn't read the original description correctly.
[Bug c++/115664] -Wnonnull-compare breaks templated methods
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115664 Andrew Pinski changed: What|Removed |Added Status|NEW |WAITING --- Comment #3 from Andrew Pinski --- But I can't produce the warning ...
[Bug c++/115664] -Wnonnull-compare breaks templated methods
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115664 Andrew Pinski changed: What|Removed |Added Status|WAITING |NEW --- Comment #2 from Andrew Pinski --- Testcase: ``` struct Object { template void method(void (*callback)(T*)); virtual void g(); }; template void Object::method(void (*callback)(T*)) { if (dynamic_cast(this) == nullptr) throw 1; } struct g{}; void c(g*); void f(Object ) { a.method(c); } ```
[Bug rtl-optimization/115667] Improve expansion for popcountti2
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115667 Andrew Pinski changed: What|Removed |Added Resolution|--- |DUPLICATE Status|UNCONFIRMED |RESOLVED --- Comment #2 from Andrew Pinski --- Dup. The analysis of what goes wrong is in the dup. Adding popcountti is not just enough. I will be handling it in the coming weeks. *** This bug has been marked as a duplicate of bug 113042 ***
[Bug target/113042] popcount of 8bits and 128bits can be improved for !TARGET_CSSC
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=113042 Andrew Pinski changed: What|Removed |Added CC||ktkachov at gcc dot gnu.org --- Comment #5 from Andrew Pinski --- *** Bug 115667 has been marked as a duplicate of this bug. ***
[Bug tree-optimization/115659] powerpc fallout from removing vcond{,u,eq} patterns
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115659 Andrew Pinski changed: What|Removed |Added Component|target |tree-optimization CC||pinskia at gcc dot gnu.org --- Comment #2 from Andrew Pinski --- Note I think this could help scalar code too: ``` int a[1], b[1], c[1]; void test (void) { a[0] = (b[0] == c[0]) ? -1 : a[0]; } void test1 (void) { a[0] = (-(b[0] == c[0])) | a[0]; } ``` So this could be something like: ``` (simplify (cond @0 @1 integer_all_ones_p) (bit_ior (negate (convert @0)) @1)) (simplify (vec_cond @0 @1 integer_all_ones_p) (bit_ior (view_convert @0) @1)) ``` The second one might need a target_supports_op_p for the bit_ior.
[Bug middle-end/86680] possible gcc optimization
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=86680 Andrew Pinski changed: What|Removed |Added Target Milestone|8.0 |---
[Bug tree-optimization/31178] VRP can infer a range for b in a >> b and a << b
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31178 --- Comment #24 from Andrew Pinski --- Note I am talking about adding path isolation for out of ranges for the shift operand too; https://gcc.gnu.org/pipermail/gcc/2024-June/244213.html . I am not sure how it will interact with this here though.
[Bug c++/115657] [12/13/14/15 Regression] ICE in tsubst_enum/tsubst_expr during template instantiation
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115657 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2024-06-26 Target Milestone|--- |12.5 Summary|ICE in |[12/13/14/15 Regression] |tsubst_enum/tsubst_expr |ICE in |during template |tsubst_enum/tsubst_expr |instantiation |during template ||instantiation Known to work||11.1.0 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #2 from Andrew Pinski --- So confirmed.
[Bug c++/115657] ICE in tsubst_enum/tsubst_expr during template instantiation
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115657 Andrew Pinski changed: What|Removed |Added Known to fail||12.1.0, 13.1.0, 14.1.0, ||15.0 Keywords||ice-checking Summary|[15 regression] ICE in |ICE in |tsubst_enum/tsubst_expr |tsubst_enum/tsubst_expr |during template |during template |instantiation |instantiation --- Comment #1 from Andrew Pinski --- /* We shouldn't get here, but keep going if !flag_checking. */ if (flag_checking) gcc_unreachable (); And yes it ICEs with -fchecking starting with GCC 12. I have not checked if this changed to the above check in GCC 12 though.
[Bug c++/115658] char16_t and char32_t aliasing is conserative
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115658 --- Comment #1 from Andrew Pinski --- Though I should note https://www.open-std.org/jtc1/sc22/wg21/docs/papers/2022/p2626r0.pdf and https://github.com/sg16-unicode/sg16-meetings/tree/master#may-22nd-2024 So maybe we really should keep on treating them the same. and maybe change char8_t back to similar as unsigned char ...
[Bug c++/115658] New: char16_t and char32_t aliasing is conserative
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115658 Bug ID: 115658 Summary: char16_t and char32_t aliasing is conserative Product: gcc Version: 15.0 Status: UNCONFIRMED Keywords: alias, missed-optimization Severity: enhancement Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: pinskia at gcc dot gnu.org Target Milestone: --- when char8_t was added, a new aliasing set was done: r9-5405-g2d91f79dc990f8 But when char16_t and char32_t was added (for GCC 4.4/C++11): r0-88474-gc466b2cd136139 That was not done. Maybe it should be done now. Noticed from https://github.com/sg16-unicode/sg16/issues/67 .
[Bug tree-optimization/115636] Missing optimzation: fold ` (w << (unsigned int)((flag ? a : b) - 32768))` to ` flag ? w << (unsigned int)(a - 32768) : 0 `
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115636 Andrew Pinski changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot gnu.org Status|NEW |ASSIGNED --- Comment #2 from Andrew Pinski --- Going to implement something for isolate-paths. It might not be exactly what was expecting here due it might be using a trap rather than 0. > According to the behavior of gcc Note this is statement is not exactly "correct" it is just the behavior for gcc currently for this undefined behavior. Note I have a straw poll going on which behavior we should do (maybe even by default): https://gcc.gnu.org/pipermail/gcc/2024-June/244213.html
[Bug jit/99126] Compilation ICE trying insert trap
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=99126 Andrew Pinski changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED Target Milestone|--- |11.0 --- Comment #10 from Andrew Pinski --- Fixed. GCC 10.x is no longer supported.
[Bug target/115622] gcc.dg/ipa/iinline-attr.c fails after r15-1579-g792f97b44ffc5e
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115622 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |15.0
[Bug target/115634] [15 regression] s390 bootstrap failure since r15-1579-g792f97b44ffc5e
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115634 --- Comment #2 from Andrew Pinski --- (In reply to Andrew Pinski from comment #1) > s390_valid_shift_count does not seem to check that %r0 was valid here. I should expand on that, it seems to allow any register. I think it should allow only pesudo registers or the valid registers, 1-15.
[Bug gcov-profile/115628] undefined reference to `__gcov_merge
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115628 --- Comment #5 from Andrew Pinski --- (In reply to sadineniharish8446 from comment #4) > we ate trying to take coverage for libstdc++, I have tried following > configuration options but getting same error. > > ../configure --enable-languages=c,c++ - --disable-bootstrap > --disable-multilib CFLAGS="-ftest-coverage -fprofile-arcs" > CXXFLAGS="-ftest-coverage -fprofile-arcs " LDFLAGS="--coverage" > > > can you please let me know which configuration will work. Try setting CXXFLAGS_FOR_TARGET only. Note this is not the right place to get help like this. gcc@ (and libstdc++@) mailing list are better places to ask for help on getting this working and only filing a bug if there is no way in the end.
[Bug target/115638] [15 regression] libphobos.phobos/std/container/rbtree.d etc. FAIL
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115638 Andrew Pinski changed: What|Removed |Added Component|rtl-optimization|target Keywords||memory-hog --- Comment #1 from Andrew Pinski --- I suspect there is a problemantic md pattern which is causing this.
[Bug target/115634] [15 regression] s390 bootstrap failure since r15-1579-g792f97b44ffc5e
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115634 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2024-06-25 CC||pinskia at gcc dot gnu.org Keywords||build Component|rtl-optimization|target Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #1 from Andrew Pinski --- ; 64 bit register shift with reg or imm shift count ; sll, srl, sllg, srlg, sllk, srlk (define_insn "*3" [(set (match_operand:GPR 0 "register_operand" "=d, d") (SHIFT:GPR (match_operand:GPR 1 "register_operand" ", d") (match_operand:QI 2 "shift_count_operand" "jsc,jsc")))] "" "@ sl\t%0,<1>%Y2 sl\t%0,%1,%Y2" [(set_attr "op_type" "RS,RSY") (set_attr "atype""reg,reg") (set_attr "cpu_facility" "*,z196") (set_attr "z10prop" "z10_super_E1,*")]) ;; Shift count operands are not necessarily legitimate addresses ;; but the predicate shift_count_operand will only allow ;; proper operands. If reload/lra need to change e.g. a spilled register ;; they can still do so via the special handling of address constraints. ;; To avoid further reloading (caused by a non-matching constraint) we ;; always return true here as the predicate's checks are already sufficient. (define_address_constraint "jsc" "Address style operand used as shift count." (match_test "true" )) (define_predicate "shift_count_operand" (and (match_code "reg, subreg, and, plus, const_int") (match_test "CONST_INT_P (op) || GET_MODE (op) == E_QImode")) { return s390_valid_shift_count (op, 63); } ) s390_valid_shift_count does not seem to check that %r0 was valid here. This is so ick though.
[Bug tree-optimization/115636] Missing optimzation: fold ` (w << (unsigned int)((flag ? a : b) - 32768))` to ` flag ? w << (unsigned int)(a - 32768) : 0 `
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115636 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2024-06-25 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #1 from Andrew Pinski --- ;; basic block 3, loop depth 0, maybe hot ;;prev block 2, next block 4, flags: (NEW, VISITED) ;;pred: 2 (TRUE_VALUE,EXECUTABLE) # VUSE <.MEM_13(D)> b.1_2 = bD.4438; # RANGE [irange] unsigned int [0, 32767][4294934528, +INF] _3 = (unsigned intD.15) b.1_2; # RANGE [irange] unsigned int [4294901760, +INF] iftmp.0_14 = _3 + 4294934528; goto ; [INV] ;;succ: 5 (FALLTHRU,EXECUTABLE) ;; basic block 4, loop depth 0, maybe hot ;;prev block 3, next block 5, flags: (NEW, VISITED) ;;pred: 2 (FALSE_VALUE,EXECUTABLE) _4 = (unsigned intD.15) a_11(D); iftmp.0_12 = _4 + 4294934528; ;;succ: 5 (FALLTHRU,EXECUTABLE) ;; basic block 5, loop depth 0, maybe hot ;;prev block 4, next block 1, flags: (NEW, VISITED) ;;pred: 3 (FALLTHRU,EXECUTABLE) ;;4 (FALLTHRU,EXECUTABLE) # iftmp.0_8 = PHI _5 = _1 << iftmp.0_8; So we could see that bb3 is undefined due to the shift right afterwards and either change it to being __builtin_unreachable or __builtin_trap and then optimize it further. This is a job for gimple-ssa-isolate-paths to handle really.
[Bug tree-optimization/115636] Missing optimzation: fold ` (w << (unsigned int)((flag ? a : b) - 32768))` to ` flag ? w << (unsigned int)(a - 32768) : 0 `
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115636 Andrew Pinski changed: What|Removed |Added Severity|normal |enhancement
[Bug tree-optimization/115652] [15 Regression] GCN: FAIL: gcc.dg/vect/pr70138-{1,2}.c (internal compiler error: verify_ssa failed)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115652 Andrew Pinski changed: What|Removed |Added Component|target |tree-optimization Target Milestone|--- |15.0 CC||pinskia at gcc dot gnu.org
[Bug c++/115651] CTAD: gcc accepts the code which should be rejected.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115651 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2024-06-25 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 --- Comment #1 from Andrew Pinski --- Confirmed.
[Bug target/115650] [15 Regression] ARC backend bug exposed by late-combine pass
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115650 Andrew Pinski changed: What|Removed |Added Keywords||link-failure Target||arc CC||pinskia at gcc dot gnu.org Target Milestone|--- |15.0
[Bug web/115627] Diagnostics Conventions does not mention options and keywords should be quoted
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115627 --- Comment #3 from Andrew Pinski --- Oh some of it is in the internals manual too: https://gcc.gnu.org/onlinedocs/gccint/Guidelines-for-Diagnostics.html#Quoting
[Bug target/115654] __builtin_cpu_supports should accept specific CPU names
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115654 Andrew Pinski changed: What|Removed |Added Severity|normal |enhancement
[Bug c/115644] [gcc][trunk] ICE if redeclare a variable with different type
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115644 --- Comment #2 from Andrew Pinski --- (In reply to wierton from comment #1) > This crash seems to be the same cause: https://gcc.godbolt.org/z/6br3xoaKG Related in the sense redeclaring the variable with a different type changes the the underlying type of the decl to error_mark_node which the rest of the compiler is not always ready to handle. (there a few other bug reports which was caused by the same thing too).
[Bug target/109989] [13 Regression] RISC-V: Missing sign extension with int to float conversion with 64bit soft floats caused by r13-2105
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109989 Andrew Pinski changed: What|Removed |Added Known to work||12.1.0, 14.1.0 Known to fail||13.1.0 Summary|[13 Regression] RISC-V: |[13 Regression] RISC-V: |Missing sign extension with |Missing sign extension with |int to float conversion |int to float conversion |with 64bit soft floats |with 64bit soft floats ||caused by r13-2105 --- Comment #8 from Andrew Pinski --- Was fixed for GCC 14 by r14-5060-g7560f2b4e387ef .
[Bug target/109989] [11/12/13 only] RISC-V: Missing sign extension with int to float conversion with 64bit soft floats
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=109989 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |13.4 Summary|RISC-V: Missing sign|[11/12/13 only] RISC-V: |extension with int to float |Missing sign extension with |conversion with 64bit soft |int to float conversion |floats |with 64bit soft floats
[Bug tree-optimization/115629] Inefficient if-convert of masked conditionals
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115629 Andrew Pinski changed: What|Removed |Added CC||pinskia at gcc dot gnu.org Severity|normal |enhancement Blocks||53947 Referenced Bugs: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53947 [Bug 53947] [meta-bug] vectorizer missed-optimizations
[Bug gcov-profile/115628] undefined reference to `__gcov_merge
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115628 Andrew Pinski changed: What|Removed |Added Summary|undefined reference to |undefined reference to |`__gcov_merge_add' |`__gcov_merge Status|WAITING |RESOLVED Resolution|--- |INVALID --- Comment #3 from Andrew Pinski --- (In reply to sadineniharish8446 from comment #2) > I was trying build source code coverage for gcc but while running the tests > we are getting the following errors: > crtstuff.c:(.text.exit+0x5): undefined reference to `__gcov_exit'^M > collect2: error: ld returned 1 exit status^M > compiler exited with status 1 > FAIL: g++.old-deja/g++.other/static13.C -std=c++98 (test for excess errors) > Excess errors: > /usr/bin/ld: > /home/hsadineni/newgcc/gcc/build/gcc/testsuite/g++/../../crtbegin.o:(. > data+0x80): undefined reference to `__gcov_merge_add' > crtstuff.c:(.text.startup+0xa): undefined reference to `__gcov_init' > crtstuff.c:(.text.exit+0x5): undefined reference to `__gcov_exit' > > Reproducible steps: > > ../configure --enable-languages=c++ --enable-coverage --disable-bootstrap > --disable-multilib CFLAGS="-ftest-coverage -fprofile-arcs" > CXXFLAGS="-ftest-coverage -fprofile-arcs " LDFLAGS="--coverage" Yes this is not going to work as you are compiling libgcc with -ftest-coverage which will almost never work. you just need either --enable-coverage or --enable-coverage=opt .
[Bug gcov-profile/115628] undefined reference to `__gcov_merge
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115628 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |WAITING Last reconfirmed||2024-06-25 Ever confirmed|0 |1 --- Comment #1 from Andrew Pinski --- Did you accidently submit the bug report without any message?
[Bug c++/115605] structured binding break if a variable named tuple_size is visibile at the decomposition site
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115605 --- Comment #7 from Andrew Pinski --- Patch submitted (with the fix): https://gcc.gnu.org/pipermail/gcc-patches/2024-June/655565.html
[Bug c++/115624] '-Wnrvo' is not an option that controls warnings
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115624 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |14.2 Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #4 from Andrew Pinski --- Fixed.
[Bug web/115627] Diagnostics Conventions does not mention options and keywords should be quoted
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115627 Andrew Pinski changed: What|Removed |Added Keywords||diagnostic --- Comment #2 from Andrew Pinski --- Note I noticed this while reviewing Andrew's patch: https://gcc.gnu.org/pipermail/gcc-patches/2024-June/65.html Well and him asking questions about it on IRC.
[Bug web/115627] Diagnostics Conventions does not mention options and keywords should be quoted
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=115627 --- Comment #1 from Andrew Pinski --- Thread 2 should have been: https://inbox.sourceware.org/gcc-patches/8ac62fe2-e4bf-0922-4947-fca9567a0...@gmail.com/