[Bug analyzer/108065] [13 Regression] ICE in make, at analyzer/store.cc:132
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108065 Richard Biener changed: What|Removed |Added Priority|P3 |P4 Target Milestone|--- |13.0
[Bug c++/108066] [13 Regression] ICE in use_pack_expansion_extra_args_p, at cp/pt.cc:12661
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108066 Richard Biener changed: What|Removed |Added Summary|ICE in |[13 Regression] ICE in |use_pack_expansion_extra_ar |use_pack_expansion_extra_ar |gs_p, at cp/pt.cc:12661 |gs_p, at cp/pt.cc:12661 Keywords||ice-on-valid-code Target Milestone|--- |13.0
[Bug libfortran/108056] [12/13 Regression] backward compatibility issue between 11 and 12
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108056 --- Comment #9 from Jakub Jelinek --- The important question is if correct code compiled by gcc 11 was working correctly with libgfortran 11, if yes, then libgfortran 12+ should maintain compatibility (of course, when soname is bumped, that compatibility code can be thrown away).
[Bug c/108068] New: decimal signed zero is not honored
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108068 Bug ID: 108068 Summary: decimal signed zero is not honored Product: gcc Version: 12.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: ntysdd at qq dot com Target Milestone: --- This program has different behavior on different optimizing levels. #include #include int main() { std::decimal::decimal64 x; x = -1; while (x != 0) { x /= 10; } double d = decimal64_to_double(x); printf("%.0f\n", d); } For example, on my current machine (gcc 9.4.0), it gives "-0" on O0, and "0" on O1, then "-0" again on O2. I believe it still has similar problems on 12.2
[Bug libfortran/108056] [12/13 Regression] backward compatibility issue between 11 and 12
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108056 --- Comment #10 from rguenther at suse dot de --- On Mon, 12 Dec 2022, jakub at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108056 > > --- Comment #9 from Jakub Jelinek --- > The important question is if correct code compiled by gcc 11 was working > correctly with libgfortran 11, if yes, then libgfortran 12+ should maintain > compatibility (of course, when soname is bumped, that compatibility code can > be > thrown away). If GCC 11 behaves incorrectly we can of course also fix that on the branch. Nevertheless breaking old working executables isn't a good idea so if we can keep them working then please do so.
[Bug libfortran/108056] [12/13 Regression] backward compatibility issue between 11 and 12
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108056 --- Comment #11 from Gilles Gouaillardet --- gfortran-11 compiles and run correctly when it uses libgfortran-11. To be perfectly clear, compilation always work: the issue occurs at runtime when gfortran-11 compiled code uses libgfortran-12).
[Bug c++/108069] New: Cant expand multiple parameters packs when used with a concept prefix when used inside a variadic templated lambda
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108069 Bug ID: 108069 Summary: Cant expand multiple parameters packs when used with a concept prefix when used inside a variadic templated lambda Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: calebxyz at gmail dot com Target Milestone: --- When using concepts in a variadic templated lambda, G++ cannot expand a concept prefix leading to misleading errors, while almost the same code without concepts works fine. Clang compiles the concept code without any errors. Link to both examples of code get_nth1 - uses concepts and doesn't work. get_nth2 - uses void* and compiles fine https://godbolt.org/z/4sa7TMeKa
[Bug target/108044] [13 Regression] ICE: in extract_constrain_insn, at recog.cc:2692 (insn does not satisfy its constraints) at -O
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108044 --- Comment #1 from Jakub Jelinek --- Created attachment 54068 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54068&action=edit gcc13-pr108044.patch Untested fix.
[Bug tree-optimization/107409] Perf loss ~5% on 519.lbm_r SPEC cpu2017 benchmark with r10-5090-ga9a4edf0e71bba
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107409 --- Comment #14 from Rama Malladi --- (In reply to Martin Liška from comment #13) > Note the mentioned revision is a fix and yes, sometimes these revisions can > end up with a regression as profile estimation is a complex guess. Yes, possibly. So, from my understanding, the update_max_bb_count() tracks the max basic block count and takes a decision to inline or not in this case/ run. That is likely why we see a larger instruction count w this function executed/ enabled.
[Bug rtl-optimization/108070] New: failure to combine range test to bit test
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108070 Bug ID: 108070 Summary: failure to combine range test to bit test Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: rtl-optimization Assignee: unassigned at gcc dot gnu.org Reporter: rguenth at gcc dot gnu.org Target Milestone: --- (insn 8 7 11 2 (parallel [ (set (reg:QI 89) (and:QI (reg:QI 90 [ *info_6(D) ]) (const_int 3 [0x3]))) (clobber (reg:CC 17 flags)) ]) "/home/rguenther/src/trunk/gcc/testsuite/c-c++-common/fold-masked-cmp-1.c":37:7 554 {*andqi_1} (expr_list:REG_DEAD (reg:QI 90 [ *info_6(D) ]) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil (insn 11 8 12 2 (set (reg:CC 17 flags) (compare:CC (reg:QI 89) (const_int 1 [0x1]))) "/home/rguenther/src/trunk/gcc/testsuite/c-c++-common/fold-masked-cmp-1.c":37:6 9 {*cmpqi_1} (expr_list:REG_DEAD (reg:QI 89) (nil))) (jump_insn 12 11 13 2 (set (pc) (if_then_else (gtu (reg:CC 17 flags) (const_int 0 [0])) (label_ref 15) (pc))) "/home/rguenther/src/trunk/gcc/testsuite/c-c++-common/fold-masked-cmp-1.c":37:6 974 {*jcc} (expr_list:REG_DEAD (reg:CC 17 flags) (int_list:REG_BR_PROB 633507684 (nil))) -> 15) here insns 8, 11 and 12 should be combined to (insn 7 6 8 2 (parallel [ (set (reg:QI 88) (and:QI (reg:QI 89 [ *info_7(D) ]) (const_int 2 [0x2]))) (clobber (reg:CC 17 flags)) ]) "/home/rguenther/src/gcc-12-branch/gcc/testsuite/c-c++-common/fold-masked-cmp-1.c":37:7 534 {*andqi_1} (expr_list:REG_DEAD (reg:QI 89 [ *info_7(D) ]) (expr_list:REG_UNUSED (reg:CC 17 flags) (nil (insn 8 7 9 2 (set (reg:CCZ 17 flags) (compare:CCZ (reg:QI 88) (const_int 0 [0]))) "/home/rguenther/src/gcc-12-branch/gcc/testsuite/c-c++-common/fold-masked-cmp-1.c":37:6 5 {*cmpqi_ccno_1} (expr_list:REG_DEAD (reg:QI 88) (nil))) the jump also needs altering here. This is required to avoid regressing code like c-c++-common/fold-masked-cmp-1.c when applying https://gcc.gnu.org/pipermail/gcc-patches/2022-December/608153.html where we no longer fold ;; Function test_exe (null) ;; enabled by -tree-original { if (info->type <= 1) to ;; Function test_exe (null) ;; enabled by -tree-original { if ((BIT_FIELD_REF <*info, 8, 0> & 2) == 0) note that applying this folding on GIMPLE produces a more costly operation (we need an extra BIT_AND_EXPR here). On x86_64 the folded code produces testb $2, (%rdi) jne .L8 while the unfolded has movzbl (%rdi), %eax andl$3, %eax cmpb$1, %al ja .L5 as CC modes are involved I'm not sure if combine is the correct vehicle to perform this. IIRC arm folks wanted to add some bit-test-and-branch patterns (that doesn't seem to be applied yet) which could make it possible to optimize this during RTL expansion itself.
[Bug rtl-optimization/108070] failure to combine range test to bit test
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108070 --- Comment #1 from Tamar Christina --- Yes it's all been approved now, doing a regression after a rebase and will commit today.
[Bug tree-optimization/105651] [12 Regression] bogus "may overlap" memcpy warning with std::string and operator+ at -O3
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105651 Richard Biener changed: What|Removed |Added Assignee|rguenth at gcc dot gnu.org |unassigned at gcc dot gnu.org Status|ASSIGNED|NEW
[Bug c++/108071] New: 13 regression: Build failure in Libreoffice
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108071 Bug ID: 108071 Summary: 13 regression: Build failure in Libreoffice Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: manuel.lauss at googlemail dot com Target Milestone: --- Created attachment 54069 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54069&action=edit compressed preprocessed unreduced source Hello, with latest gcc-13 trunk, libreoffice build fails; last time I was able to build it was 9 days ago with r13-93574914e462e87e4266b0dfbb9627662f33. gcc-12 works as expected, though the preprocessed source has few differences. Attached the compressed preprocessed unreduced source file, build with g++ -c AnyCompareFactory.i Thanks, Manuel
[Bug tree-optimization/106912] [13 Regression] ICE in vect_transform_loops, at tree-vectorizer.cc:1032 since r13-1575-gcf3a120084e94614
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106912 Richard Biener changed: What|Removed |Added Assignee|rguenth at gcc dot gnu.org |unassigned at gcc dot gnu.org Status|ASSIGNED|NEW --- Comment #7 from Richard Biener --- (In reply to Jakub Jelinek from comment #6) > Sure, the FUNCTION_TYPE can be shared, so shouldn't be overwritten in place, > but can be copied with TREE_READONLY cleared on the copy. > So, if we for whatever reason need to clear const flag on some functions, > after clearing TREE_READONLY on the node->decl we'd also need to update the > TREE_TYPE to a version without TREE_READONLY set (so that say if new calls > are created they don't get wrong fntype) and then walk all call edges to > that function, updating gimple_call_fntype to the updated type if it was > equal to the old TREE_TYPE, or to a copy with TREE_READONLY cleared if it > has TREE_READONLY set on the FUNCTION/METHOD_TYPE). That will not catch indirect calls to the function. So whatever we do this part of the problem will remain (the out-of-sync profile). Like inline int __attribute__((const)) foo (int i) { if (i == 0) return 2; return 1; } int (* __attribute__((const)) bar) () = foo; int main() { int r = 0; for (int i = 0; i < 1; ++i) { r += foo (r); r += bar (r); } return r; } which, when compiled with -O2 -fno-early-inlining -fprofile-arcs results in the edge counters from the inline copy via foo to be store-motion'ed but the indirect call clobbering them each iteration. Using -fprofile-use prevents this because we get an indirect call profiler call which clobbers all memory, confusing LIM, doing early inlining will early inline the function before profile instrumentation. I cannot see how we can fix this without some global flag to ignore const/pure-ness of functions or alternatively dropping DECL_NONALIASED. Trying to support surgical un-setting of pure/const for single functions isn't going to work. Simply disabling IPA inlining for instrumented builds might also work.
[Bug libstdc++/108062] Test spdlog c++20 std::format
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108062 Jonathan Wakely changed: What|Removed |Added Last reconfirmed||2022-12-12 Status|UNCONFIRMED |WAITING Ever confirmed|0 |1 --- Comment #2 from Jonathan Wakely --- Not a valid bug report, please read https://gcc.gnu.org/bugs/
[Bug c++/108063] push_back on std::vector allocates wrong amount of memory
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108063 --- Comment #8 from Jonathan Wakely --- (In reply to jo.rickert from comment #6) > Thanks, I thought the name had to be unique per translation unit. That can't possibly work. You would have to define the entire program in one translation unit, because otherwise you could never declare: struct X { void func(); }; and define X::func() in one translation unit and call it from a different translation unit. Under your mental model, it would be a different X, and the linker could never find the definition of X::func.
[Bug libstdc++/108062] Test spdlog c++20 std::format
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108062 --- Comment #3 from Jonathan Wakely --- Why am I having to say this AGAIN? https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107886#c7 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107886#c9 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104592#c3 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104592#c5
[Bug libstdc++/108062] Test spdlog c++20 std::format
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108062 Jonathan Wakely changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |redi at gcc dot gnu.org Status|WAITING |ASSIGNED --- Comment #4 from Jonathan Wakely --- (In reply to Jamaika from comment #0) > c:\gcc1300\include\c++\13.0.0\format:3350:40: error: expected identifier > before ',' token > 3350 | __format::__do_vformat_to(_Out_, basic_string_view<_CharT_>, > |^ This looks like you've got _Out_ defined as a macro, which causes an error in this friend declaration. Then because the function isn't a friend, you get access errors in the function that's supposed to be a friend: > c:\gcc1300\include\c++\13.0.0\format: In instantiation of '_Out > std::__format::__do_vformat_to(_Out, std::basic_string_view<_CharT>, const > std::basic_format_args<_Context>&, const std::locale*) [with _Out = > _Sink_iter; _CharT = char; _Context = > std::basic_format_context<_Sink_iter, char>]': > c:\gcc1300\include\c++\13.0.0\format:3646:39: required from '_Out > std::vformat_to(_Out, string_view, format_args) [with _Out = > __format::_Sink_iter; string_view = basic_string_view; > format_args = > basic_format_args, char> >]' > c:\gcc1300\include\c++\13.0.0\format:3673:20: required from here > c:\gcc1300\include\c++\13.0.0\format:3614:24: error: > 'std::basic_format_context<_Out, > _CharT>::basic_format_context(std::basic_format_args basic_format_context<_Out, _CharT> >, _Out) [with _Out = > std::__format::_Sink_iter; _CharT = char]' is private within this > context > 3614 | ? _Context(__args, __sink_out) > |^~~~ > c:\gcc1300\include\c++\13.0.0\format:3338:7: note: declared private here > 3338 | basic_format_context(basic_format_args > __args, > | ^~~~ And I think that's because _Out_ is a Windows SAL macro: mingw-w64-tools/widl/include/sal.h:#define _Out_ So confirmed as a bug but next time please provide a proper bug report.
[Bug tree-optimization/106433] [13 Regression] ICE in vect_transform_loops, at tree-vectorizer.cc:1032
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106433 --- Comment #3 from Richard Biener --- Interestingly the cgraph node for 'bar' doesn't have any clones when it changes pure/const state so we cannot update those as well. create_version_clone_with_body as used by OMP cloning doesn't populate those links it seems, as opposed to create_clone. Honza?
[Bug tree-optimization/107407] [12 Regression] Wrong code at -Os on x86_64-linux-gnu since r12-383-g32955416d8040b1f
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107407 --- Comment #6 from CVS Commits --- The releases/gcc-12 branch has been updated by Richard Biener : https://gcc.gnu.org/g:e0e37f97e67c99604129eeac2e73ccd3719ccb28 commit r12-8973-ge0e37f97e67c99604129eeac2e73ccd3719ccb28 Author: Richard Biener Date: Fri Oct 28 15:03:49 2022 +0200 tree-optimization/107407 - wrong code with DSE So what happens is that we elide processing of this check with /* In addition to kills we can remove defs whose only use is another def in defs. That can only ever be PHIs of which we track two for simplicity reasons, the first and last in {first,last}_phi_def (we fail for multiple PHIs anyways). We can also ignore defs that feed only into already visited PHIs. */ else if (single_imm_use (vdef, &use_p, &use_stmt) && (use_stmt == first_phi_def || use_stmt == last_phi_def || (gimple_code (use_stmt) == GIMPLE_PHI && bitmap_bit_p (visited, SSA_NAME_VERSION (PHI_RESULT (use_stmt)) where we have the last PHI being the outer loop virtual PHI and the first PHI being the loop exit PHI of the outer loop and we've already processed the single immediate use of the outer loop PHI, the inner loop PHI. But we still have to perform the above check! It's easiest to perform the check when we visit the PHI node instead of delaying it to the actual processing loop. PR tree-optimization/107407 * tree-ssa-dse.cc (dse_classify_store): Perform backedge varying index check when collecting PHI uses rather than after optimizing processing of the candidate defs. * gcc.dg/torture/pr107407.c: New testcase. (cherry picked from commit 031a400e49d8db156c43f9ec0b21ab0c2aee8c6d)
[Bug tree-optimization/106868] [12 Regression] Bogus -Wdangling-pointer warning with -O1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106868 --- Comment #7 from CVS Commits --- The releases/gcc-12 branch has been updated by Richard Biener : https://gcc.gnu.org/g:ad6ace70ba38d2052eeb5adb9672d33f59867be0 commit r12-8972-gad6ace70ba38d2052eeb5adb9672d33f59867be0 Author: Richard Biener Date: Mon Dec 5 10:13:13 2022 +0100 tree-optimization/106868 - bogus -Wdangling-pointer diagnostic The testcase shows we mishandle the case where there's a pass-through of a pointer through a function like memcpy. The following adjusts handling of this copy case to require a taken address and adjust the PHI case similarly. PR tree-optimization/106868 * gimple-ssa-warn-access.cc (pass_waccess::gimple_call_return_arg_ref): Inline into single user ... (pass_waccess::check_dangling_uses): ... here and adjust the call and the PHI case to require that ref.aref is the address of the decl. * gcc.dg/Wdangling-pointer-pr106868.c: New testcase. (cherry picked from commit d492d50f644811327c5976e2c918ab6d906ed40c)
[Bug tree-optimization/107647] [12 Regression] GCC 12.2.0 may produce FMAs even with -ffp-contract=off
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107647 --- Comment #20 from CVS Commits --- The releases/gcc-12 branch has been updated by Richard Biener : https://gcc.gnu.org/g:a9fafa2f533e25c57528c0294e19a154197848dd commit r12-8974-ga9fafa2f533e25c57528c0294e19a154197848dd Author: Richard Biener Date: Thu Nov 17 09:43:31 2022 +0100 tree-optimization/107647 - avoid FMA from SLP with -ffp-contract=off Only with -ffp-contract=fast we can synthesize FMA operations like vfmaddsub231ps, so properly guard the transform in SLP pattern detection. PR tree-optimization/107647 * tree-vect-slp-patterns.cc (addsub_pattern::recognize): Only allow FMA generation with -ffp-contract=fast for FP types. (complex_mul_pattern::matches): Likewise. * gcc.target/i386/pr107647.c: New testcase. (cherry picked from commit c5df8392c5848c0462558f41cdf6eab31db301cf)
[Bug middle-end/104077] [meta-bug] bogus/missing -Wdangling-pointer
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104077 Bug 104077 depends on bug 106868, which changed state. Bug 106868 Summary: [12 Regression] Bogus -Wdangling-pointer warning with -O1 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106868 What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED
[Bug tree-optimization/107766] [13 Regression] ICE Segmentation fault since r13-4137-gc5df8392c5848c04
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107766 --- Comment #7 from CVS Commits --- The releases/gcc-12 branch has been updated by Richard Biener : https://gcc.gnu.org/g:9e242f8a2d5987ddaa74696e5ad809303ddc8dd0 commit r12-8975-g9e242f8a2d5987ddaa74696e5ad809303ddc8dd0 Author: Richard Biener Date: Mon Nov 21 07:56:06 2022 +0100 tree-optimization/107766 - ICE with recent -ffp-contract=off fix The following uses *node to check for FP types rather than the child nodes which could be constant leafs and thus without a vector type. PR tree-optimization/107766 * tree-vect-slp-patterns.cc (complex_mul_pattern::matches): Use *node to check for FP vector types. * g++.dg/vect/pr107766.cc: New testcase. (cherry picked from commit 1a06ae6f2f4f292fd05a900bcf433cb4282da1e3)
[Bug tree-optimization/107686] [12 Regression] ICE: verify_gimple failed (invalid types in nop conversion) with _Decimal64 vector
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107686 --- Comment #7 from CVS Commits --- The releases/gcc-12 branch has been updated by Richard Biener : https://gcc.gnu.org/g:232305bd0c8dd37b17b815864e730aa630714606 commit r12-8976-g232305bd0c8dd37b17b815864e730aa630714606 Author: Richard Biener Date: Wed Nov 16 15:27:13 2022 +0100 tree-optimization/107686 - fix bitfield ref through vec_unpack optimization The following propely restricts the bitfield access to integral types when we look through VEC_UNPACK with the intent to emit a widening conversion. PR tree-optimization/107686 * tree-ssa-forwprop.cc (optimize_vector_load): Restrict VEC_UNPACK support to integral typed bitfield refs. * gcc.dg/pr107686.c: New testcase. (cherry picked from commit 246bbdaa5f536b7a199dda9860c473137f40d622)
[Bug tree-optimization/107839] spurious "may be used uninitialized" warning while all uses are under "if (c)"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107839 --- Comment #6 from CVS Commits --- The releases/gcc-12 branch has been updated by Richard Biener : https://gcc.gnu.org/g:812847a9d12c0b65695cbe1a23959b69a7e62355 commit r12-8977-g812847a9d12c0b65695cbe1a23959b69a7e62355 Author: Richard Biener Date: Fri Dec 2 14:52:20 2022 +0100 tree-optimization/107833 - invariant motion of uninit uses The following fixes a wrong-code bug caused by loop invariant motion hoisting an expression using an uninitialized value outside of its controlling condition causing IVOPTs to use that to rewrite a defined value. PR107839 is a similar case involving a bogus uninit diagnostic. PR tree-optimization/107833 PR tree-optimization/107839 * cfghooks.cc: Include tree.h. * tree-ssa-loop-im.cc (movement_possibility): Wrap and make stmts using any ssa_name_maybe_undef_p operand to preserve execution. (loop_invariant_motion_in_fun): Call mark_ssa_maybe_undefs to init maybe-undefined status. * tree-ssa-loop-ivopts.cc (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef, ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): Move ... * tree-ssa.cc: ... here. * tree-ssa.h (ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): Declare. (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): Define. * gcc.dg/torture/pr107833.c: New testcase. * gcc.dg/uninit-pr107839.c: Likewise. (cherry picked from commit 44c8402d35160515b3c09fd2bc239587e0c32a2b)
[Bug tree-optimization/107647] [12 Regression] GCC 12.2.0 may produce FMAs even with -ffp-contract=off
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107647 Richard Biener changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED Known to work||12.2.1 --- Comment #21 from Richard Biener --- Fixed.
[Bug tree-optimization/107407] [12 Regression] Wrong code at -Os on x86_64-linux-gnu since r12-383-g32955416d8040b1f
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107407 Richard Biener changed: What|Removed |Added Resolution|--- |FIXED Known to work||12.2.1 Status|ASSIGNED|RESOLVED --- Comment #7 from Richard Biener --- Fixed.
[Bug tree-optimization/107865] [12 Regression] ICE in verify_loop_structure, at cfgloop.cc:1748 (Error: loop 3's number of iterations '_61 > 0 ? (uint128_t) (_61 + -1) : 0' references the released SSA
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107865 --- Comment #3 from CVS Commits --- The releases/gcc-12 branch has been updated by Richard Biener : https://gcc.gnu.org/g:09469705318de7a0fe5f10f5d5b92870d3fada6e commit r12-8978-g09469705318de7a0fe5f10f5d5b92870d3fada6e Author: Richard Biener Date: Fri Nov 25 08:27:42 2022 +0100 tree-optimization/107865 - ICE with outlining of loops The following makes sure to clear loops number of iterations when outlining them as part of a SESE region as can happen with auto-parallelization. The referenced SSA names become stale otherwise. PR tree-optimization/107865 * tree-cfg.cc (move_sese_region_to_fn): Free the number of iterations of moved loops. * gfortran.dg/graphite/pr107865.f90: New testcase. (cherry picked from commit bcc2449384f2092cbdf5d6ac2357aeabe3212b2e)
[Bug tree-optimization/106868] [12 Regression] Bogus -Wdangling-pointer warning with -O1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=106868 Richard Biener changed: What|Removed |Added Known to work||12.2.1 Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #8 from Richard Biener --- Fixed.
[Bug tree-optimization/107686] [12 Regression] ICE: verify_gimple failed (invalid types in nop conversion) with _Decimal64 vector
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107686 Richard Biener changed: What|Removed |Added Known to fail|12.2.1 |12.2.0 Known to work||12.2.1 Resolution|--- |FIXED Status|ASSIGNED|RESOLVED --- Comment #8 from Richard Biener --- Fixed.
[Bug c/107898] [11/12 Regression] ICE in irange_intersect, at value-range.cc:1640
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107898 --- Comment #4 from CVS Commits --- The releases/gcc-12 branch has been updated by Richard Biener : https://gcc.gnu.org/g:1a8af01a8386fcda16a61dc17f11ba9cfbfd commit r12-8979-g1a8af01a8386fcda16a61dc17f11ba9cfbfd Author: Richard Biener Date: Tue Nov 29 09:03:46 2022 +0100 tree-optimization/107898 - ICE with -Walloca-larger-than The following avoids ICEing with a mismatched prototype for alloca and -Walloca-larger-than using irange for checks which doesn't like mismatched types. PR tree-optimization/107898 * gimple-ssa-warn-alloca.cc (alloca_call_type): Check the type of the alloca argument is compatible with size_t before querying ranges. (cherry picked from commit 9948daa4fd0f0ea0a9d56c2fefe1bca478554d27)
[Bug tree-optimization/107833] [12 Regression] wrong code at -Os and above on x86_64-linux-gnu since r12-5138-ge82c382971664d6f
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107833 --- Comment #16 from CVS Commits --- The releases/gcc-12 branch has been updated by Richard Biener : https://gcc.gnu.org/g:812847a9d12c0b65695cbe1a23959b69a7e62355 commit r12-8977-g812847a9d12c0b65695cbe1a23959b69a7e62355 Author: Richard Biener Date: Fri Dec 2 14:52:20 2022 +0100 tree-optimization/107833 - invariant motion of uninit uses The following fixes a wrong-code bug caused by loop invariant motion hoisting an expression using an uninitialized value outside of its controlling condition causing IVOPTs to use that to rewrite a defined value. PR107839 is a similar case involving a bogus uninit diagnostic. PR tree-optimization/107833 PR tree-optimization/107839 * cfghooks.cc: Include tree.h. * tree-ssa-loop-im.cc (movement_possibility): Wrap and make stmts using any ssa_name_maybe_undef_p operand to preserve execution. (loop_invariant_motion_in_fun): Call mark_ssa_maybe_undefs to init maybe-undefined status. * tree-ssa-loop-ivopts.cc (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef, ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): Move ... * tree-ssa.cc: ... here. * tree-ssa.h (ssa_name_any_use_dominates_bb_p, mark_ssa_maybe_undefs): Declare. (ssa_name_maybe_undef_p, ssa_name_set_maybe_undef): Define. * gcc.dg/torture/pr107833.c: New testcase. * gcc.dg/uninit-pr107839.c: Likewise. (cherry picked from commit 44c8402d35160515b3c09fd2bc239587e0c32a2b)
[Bug tree-optimization/107833] [12 Regression] wrong code at -Os and above on x86_64-linux-gnu since r12-5138-ge82c382971664d6f
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107833 Richard Biener changed: What|Removed |Added Known to work||12.2.1 Status|ASSIGNED|RESOLVED Known to fail||12.2.0 Resolution|--- |FIXED --- Comment #17 from Richard Biener --- Fixed.
[Bug tree-optimization/107865] [12 Regression] ICE in verify_loop_structure, at cfgloop.cc:1748 (Error: loop 3's number of iterations '_61 > 0 ? (uint128_t) (_61 + -1) : 0' references the released SSA
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107865 Richard Biener changed: What|Removed |Added Resolution|--- |FIXED Status|ASSIGNED|RESOLVED Known to work||12.2.1 --- Comment #4 from Richard Biener --- Fixed.
[Bug tree-optimization/53947] [meta-bug] vectorizer missed-optimizations
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53947 Bug 53947 depends on bug 107647, which changed state. Bug 107647 Summary: [12 Regression] GCC 12.2.0 may produce FMAs even with -ffp-contract=off https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107647 What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED
[Bug go/108057] [13 Regression] libgo21 not ABI compatible gcc12 vs gcc13?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108057 Martin Liška changed: What|Removed |Added Ever confirmed|0 |1 CC||marxin at gcc dot gnu.org Last reconfirmed||2022-12-12 Status|UNCONFIRMED |NEW
[Bug libbacktrace/108072] New: [13 Regression] gcc/libbacktrace/elf.c:5144: multiple definition of `backtrace_uncompress_zstd' with --with-build-config=bootstrap-asan since r13-4547-g9df1ba9a35b86e
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108072 Bug ID: 108072 Summary: [13 Regression] gcc/libbacktrace/elf.c:5144: multiple definition of `backtrace_uncompress_zstd' with --with-build-config=bootstrap-asan since r13-4547-g9df1ba9a35b86e Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libbacktrace Assignee: unassigned at gcc dot gnu.org Reporter: marxin at gcc dot gnu.org CC: ian at gcc dot gnu.org Target Milestone: --- ASAN bootstrap fails due to: /dev/shm/objdir2/./prev-gcc/xg++ -B/dev/shm/objdir2/./prev-gcc/ -B/usr/local/x86_64-pc-linux-gnu/bin/ -nostdinc++ -B/dev/shm/objdir2/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs -B/dev/shm/objdir2/prev-x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs -I/dev/shm/objdir2/prev-x86_64-pc-linux-gnu/libstdc++-v3/include/x86_64-pc-linux-gnu -I/dev/shm/objdir2/prev-x86_64-pc-linux-gnu/libstdc++-v3/include -I/home/marxin/Programming/gcc/libstdc++-v3/libsupc++ -L/dev/shm/objdir2/prev-x86_64-pc-linux-gnu/libstdc++-v3/src/.libs -L/dev/shm/objdir2/prev-x86_64-pc-linux-gnu/libstdc++-v3/libsupc++/.libs -no-pie -g -O2 -fno-checking -fsanitize=address -DIN_GCC -fno-exceptions -fno-rtti -fasynchronous-unwind-tables -W -Wall -Wno-narrowing -Wwrite-strings -Wcast-qual -Wmissing-format-attribute -Woverloaded-virtual -pedantic -Wno-long-long -Wno-variadic-macros -Wno-overlength-strings -fno-common -DHAVE_CONFIG_H -static-libstdc++ -static-libgcc -fsanitize=address -static-libasan -B/dev/shm/objdir2/prev-x86_64-pc-linux-gnu/libsanitizer/ -B/dev/shm/objdir2/prev-x86_64-pc-linux-gnu/libsanitizer/asan/ -B/dev/shm/objdir2/prev-x86_64-pc-linux-gnu/libsanitizer/asan/.libs gcov-dump.o \ hash-table.o ggc-none.o\ libcommon.a ../libcpp/libcpp.a ../libbacktrace/.libs/libbacktrace.a ../libiberty/libiberty.a ../libdecnumber/libdecnumber.a -o gcov-dump /usr/lib64/gcc/x86_64-suse-linux/12/../../../../x86_64-suse-linux/bin/ld: ../libbacktrace/.libs/libbacktrace.a(elf.o): in function `backtrace_uncompress_zstd': /home/marxin/Programming/gcc/libbacktrace/elf.c:5144: multiple definition of `backtrace_uncompress_zstd'; /dev/shm/objdir2/prev-x86_64-pc-linux-gnu/libsanitizer/asan/.libs/libasan.a(elf.o):/home/marxin/Programming/gcc/libsanitizer/libbacktrace/../../libbacktrace/elf.c:5144: first defined here collect2: error: ld returned 1 exit status make[3]: *** [Makefile:3138: gcov-dump] Error 1
[Bug libbacktrace/108072] [13 Regression] gcc/libbacktrace/elf.c:5144: multiple definition of `backtrace_uncompress_zstd' with --with-build-config=bootstrap-asan since r13-4547-g9df1ba9a35b86e
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108072 Martin Liška changed: What|Removed |Added Status|UNCONFIRMED |NEW Priority|P3 |P1 Last reconfirmed||2022-12-12 Target Milestone|--- |13.0 Ever confirmed|0 |1
[Bug c++/108047] ice: unexpected expression of kind implicit_conv_expr
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108047 Sergei Trofimovich changed: What|Removed |Added CC||slyfox at gcc dot gnu.org --- Comment #4 from Sergei Trofimovich --- Noticed the same build failure on this week's gcc on apache-arrow-cpp-9.0.0. Extracted small example: namespace std { template class initializer_list; struct Trans_NS___cxx11_basic_string { Trans_NS___cxx11_basic_string(const char *); }; struct vector { vector(initializer_list); }; } // namespace std void key_value_metadata(std::vector, std::vector); template void TestWriteDifferentMetadata() { key_value_metadata({}, {""}); } Not sure if it's valid, but gcc-12 still accepts it. Can re-reduce against clang if needed. $ ./gcc-git/bin/gcc -c bug.cc.cc bug.cc.cc: In function 'void TestWriteDifferentMetadata()': bug.cc.cc:12:21: internal compiler error: unexpected expression '(std::Trans_NS___cxx11_basic_string)""' of kind implicit_conv_expr 12 | key_value_metadata({}, {""}); | ~~^~ 0x219cf54 diagnostic_impl(rich_location*, diagnostic_metadata const*, int, char const*, __va_list_tag (*) [1], diagnostic_t) ???:0 0x219dba6 internal_error(char const*, ...) ???:0 0x9d4fee cxx_eval_constant_expression(constexpr_ctx const*, tree_node*, value_cat, bool*, bool*, tree_node**) ???:0
[Bug c++/108071] [13 regression] Build failure in Libreoffice
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108071 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |WAITING Last reconfirmed||2022-12-12 Target Milestone|--- |13.0 Ever confirmed|0 |1 Summary|13 regression: Build|[13 regression] Build |failure in Libreoffice |failure in Libreoffice --- Comment #1 from Richard Biener --- I get /tmp/t.i: In member function 'virtual com::sun::star::uno::Sequence {anonymous}::AnyCompareFactory::getSupportedServiceNames()': /tmp/t.i:47993:51: error: no matching function for call to 'rtl::OUString::OUString(const char* const)' 47993 | return { "com.sun.star.ucb.AnyCompareFactory" }; | ^ and loads of warnings before/after. That's with no options - what options do you use and what's your error?
[Bug libfortran/108056] [12/13 Regression] backward compatibility issue between 11 and 12
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108056 --- Comment #12 from Tobias Burnus --- First, there were several issue in GCC 12 related to using CFI_. Thus, using GCC 12 is highly recommended. This can be seen when implementing the function using the following code (and removing ', name="sync"' - calling 'void sync(void)' system function): #include void bar_ts (CFI_cdesc_t *a, CFI_cdesc_t *b) { __builtin_printf ("a = %s, b = %s\n", (a->type == CFI_type_float) ? "float" : "something else", (b->type == CFI_type_float) ? "float" : "something else"); } This prints the expected value: a = float, b = float * * * In GCC 11, the value that arrives at type = GFC_DESCRIPTOR_TYPE (s); and is then used for d->type = (CFI_type_t)type; is BT_ASSUMED (= 11) instead of the expected BT_REAL (= 3), loosing the data type. As d->type is now BT_ASSUMED and this case is not handled, we run into the code: switch (d->type) ... default: internal_error (NULL, "Invalid type in descriptor"); * * * I want to note that both functions, _gfortran_cfi_desc_to_gfc_desc _gfortran_gfc_desc_to_cfi_desc are only in GCC 12's libgfortran.so to provide backward compatibility with GCC <= 11. Thus, we have two options: (A) We change those to functions back to the GCC 11 version; the new check was added in Sandra's commit r12-3321-g93b6b2f614eb692d1d8126ec6cb946984a9d01d7 back when those functions were still used in GCC 12. (B) I think we have to possibilities to map this: BT_ASSUMED -> CFI_type_cptr or CFI_type_other; using the latter, that's the following (untested but it should work): --- --- a/libgfortran/runtime/ISO_Fortran_binding.c +++ b/libgfortran/runtime/ISO_Fortran_binding.c @@ -182,4 +182,7 @@ gfc_desc_to_cfi_desc (CFI_cdesc_t **d_ptr, const gfc_array_void *s) d->type = CFI_type_struct; break; +case BT_ASSUME: + d->type = CFI_type_other; + break; case BT_VOID: /* FIXME: PR 100915. GFC descriptors do not distinguish between Thoughts whether (A) or (B) is better? In any case, we should check whether the testcase of comment 0 plus the C code above in this comment should be added as new testcase. But it might very well already be covered in our testsuite.
[Bug c/108073] New: [rs6000] sub-optimal float member accessing on struct parameter
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108073 Bug ID: 108073 Summary: [rs6000] sub-optimal float member accessing on struct parameter Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: guojiufu at gcc dot gnu.org Target Milestone: --- For the below code: typedef struct DF {double a[4]; long l; } DF; double __attribute__ ((noipa)) foo_df (DF arg){return arg.a[3];} At -O2, with gcc trunk(13.0), we get below sequence: std 6,-24(1) ori 2,2,0 lfd 1,-24(1) blr Actually, just one "mtvsrd 1, 6" is enough. In this case, the argument is passed through integer registers. For below code, it is similar: typedef struct SF {float a[4];short l; } SF; float foo (SF arg){return arg.a[3];} std 4,-24(1) ori 2,2,0 lfs 1,-20(1) vs. below seq seems faster. rldicr 4,4,0,31 mtvsrd 1,4 xscvspdpn 1,1
[Bug c++/108071] [13 regression] Build failure in Libreoffice
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108071 --- Comment #2 from Manuel Lauss --- (In reply to Richard Biener from comment #1) I get the same errors, but the whole file can be compiled without errors with gcc-12 (it needs to be preprocessed with gcc-12 as well), and with a gcc-13 checkout from 9 days ago. So in the last 9 days, something was introduced which caused these errors to appear.
[Bug tree-optimization/108064] [13 Regression] apache-arrow-cpp-9.0.0 is vectored incorrectly: arithmetic shift instead of logical
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108064 --- Comment #2 from Jakub Jelinek --- Created attachment 54070 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54070&action=edit gcc13-pr108064.patch Untested fix.
[Bug middle-end/108073] [rs6000] sub-optimal float member accessing on struct parameter
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108073 Andrew Pinski changed: What|Removed |Added Keywords||missed-optimization Severity|normal |enhancement
[Bug libfortran/108056] [12/13 Regression] backward compatibility issue between 11 and 12
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108056 --- Comment #13 from rguenther at suse dot de --- On Mon, 12 Dec 2022, burnus at gcc dot gnu.org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108056 > > --- Comment #12 from Tobias Burnus --- [...] > Thus, we have two options: > > (A) We change those to functions back to the GCC 11 version; the new check was > added in Sandra's commit > r12-3321-g93b6b2f614eb692d1d8126ec6cb946984a9d01d7 > back when those functions were still used in GCC 12. > > (B) I think we have to possibilities to map this: > > BT_ASSUMED -> CFI_type_cptr or CFI_type_other; using the latter, that's the > following (untested but it should work): > > --- > --- a/libgfortran/runtime/ISO_Fortran_binding.c > +++ b/libgfortran/runtime/ISO_Fortran_binding.c > @@ -182,4 +182,7 @@ gfc_desc_to_cfi_desc (CFI_cdesc_t **d_ptr, const > gfc_array_void *s) >d->type = CFI_type_struct; >break; > +case BT_ASSUME: > + d->type = CFI_type_other; > + break; > case BT_VOID: >/* FIXME: PR 100915. GFC descriptors do not distinguish between > > > Thoughts whether (A) or (B) is better? I'd go with (A) if the functions are just for legacy code and not used by GCC 12+ at all.
[Bug c/108074] New: Incorrect stringop-overflow warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108074 Bug ID: 108074 Summary: Incorrect stringop-overflow warning Product: gcc Version: 12.2.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: alastair.j.irving at gmail dot com Target Milestone: --- Created attachment 54071 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54071&action=edit Reproducer Compiling with -O2 or higher I get an incorrect warning: test.c: In function ‘foo3’: test.c:15:5: warning: ‘foo’ accessing 16 bytes in a region of size 8 [-Wstringop-overflow=] This doesn't appear at lower optimization levels. It's also very sensative to the function, for example removing the return on the next line makes the warning go away.
[Bug target/103698] [12 regression] Code assigned to __attribute__((section(".data"))) generates invalid dwarf: leb128 operand is an undefined symbol
Hi! I came across this problem as well. I use the __attribute__((section(".data"))) as a kind of hack to get a function in the RAM using the standard linker file and startup provided for ST microcontrollers. Not being able to make a debug build is inaccepable! With older GCC/binutils versions this problem didn't exist. However, I found a workaround, I now use __attribute__((section(".datax"))). In the Linker script they include *(.data*) so this works and it does not generate the errors. Just wanted to share this in case anyone else is stuck at this. Best regards, Manuel Köppen
[Bug c++/108071] [13 Regression] Build failure in Libreoffice since r13-4565
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108071 Jakub Jelinek changed: What|Removed |Added Last reconfirmed|2022-12-12 00:00:00 | CC||jakub at gcc dot gnu.org, ||jason at gcc dot gnu.org Status|WAITING |NEW Summary|[13 regression] Build |[13 Regression] Build |failure in Libreoffice |failure in Libreoffice ||since r13-4565 Priority|P3 |P1 --- Comment #3 from Jakub Jelinek --- Started with r13-4565-gbd0485f20f4794f9787237706a6308473a8e9415
[Bug sanitizer/108060] UBsan missed an out-of-bound bug at -O0 since r7-1900-g8a1b7b7fd75a3847
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108060 Martin Liška changed: What|Removed |Added Last reconfirmed||2022-12-12 CC||jason at gcc dot gnu.org Summary|UBsan missed an |UBsan missed an |out-of-bound bug at -O0 |out-of-bound bug at -O0 ||since ||r7-1900-g8a1b7b7fd75a3847 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW --- Comment #1 from Martin Liška --- Confirmed. So it started with r7-1900-g8a1b7b7fd75a3847 where the array is accessed before UBSAN check: gcc pr108060.c -fsanitize=undefined -fdump-tree-gimple=/dev/stdout int main () { int D.2422; int D.2423; { b = -32768; b.0_1 = b; _2 = (int) b.0_1; _3 = a[_2]; <--- load happens here c.1_4 = c; _5 = (int) c.1_4; b.2_6 = b; D.2422 = (int) b.2_6; .UBSAN_BOUNDS (0B, D.2422, 7); _7 = _3 | _5; a[D.2422] = _7; } D.2423 = 0; return D.2423; } thus we crashes before the .UBSAN_BOUNDS happens. Before the revision we emitted: { b = -4169; b.0_1 = b; D.2074 = (int) b.0_1; UBSAN_BOUNDS (0B, D.2074, 7); b.1_2 = b; _3 = (int) b.1_2; _4 = a[_3]; _5 = _4 | 1; a[D.2074] = _5; }
[Bug c++/108071] [13 Regression] Build failure in Libreoffice since r13-4565
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108071 --- Comment #4 from Jakub Jelinek --- Trying to reduce it now.
[Bug tree-optimization/108074] [11/12 Regression] Incorrect stringop-overflow warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108074 Richard Biener changed: What|Removed |Added CC||rguenth at gcc dot gnu.org Summary|Incorrect stringop-overflow |[11/12 Regression] |warning |Incorrect stringop-overflow ||warning Keywords||needs-bisection Target Milestone|--- |11.4 --- Comment #1 from Richard Biener --- This has been fixed on trunk and is likely a duplicate.
[Bug c++/108071] [13 Regression] Build failure in Libreoffice since r13-4565
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108071 Jonathan Wakely changed: What|Removed |Added Last reconfirmed||2022-12-12 0:00 --- Comment #5 from Jonathan Wakely --- Reduced: #include template< typename T1, typename T2 = void > struct ConstCharArrayDetector { static const bool ok = false; }; template< std::size_t N, typename T > struct ConstCharArrayDetector< const char[ N ], T > { typedef T Type; }; struct Dummy { }; struct OUString { template OUString(T&, typename ConstCharArrayDetector::Type = Dummy()) { } }; struct Sequence { Sequence(std::initializer_list); }; Sequence s = {""};
[Bug c++/108071] [13 Regression] Build failure in Libreoffice since r13-4565
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108071 --- Comment #6 from Jonathan Wakely --- The ConstCharArrayDetector is getting instantiated with const char* const instead of const char[1], so the partial specialization doesn't match.
[Bug libstdc++/108075] New: Undefined typeinfo for _Float16 (_ZTIDF16_)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108075 Bug ID: 108075 Summary: Undefined typeinfo for _Float16 (_ZTIDF16_) Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: andrey458641387 at gmail dot com Target Milestone: --- The following program compiles but does not link: #include const std::type_info &a = typeid(_Float16); with the error "undefined reference to `_ZTIDF16_'". Compiler Explorer link: https://godbolt.org/z/eo6fbWTPr. As a result, using `std::vector<_Float16>` with `_GLIBCXX_DEBUG` fails with (https://godbolt.org/z/5T5GbPs7f): in function `_ZN11__gnu_debug16_Error_formatter10_ParameterC2IDF16_EERKPT_PKcNS0_12_Is_iteratorE': include/c++/13.0.0/debug/formatter.h:369: undefined reference to `_ZTIPDF16_' This issue exists in GCC >= 12, including trunk (at least as of CE gcc version 13.0.0 20221212). Checked on Linux x86_64 and aarch64 (on CE).
[Bug sanitizer/108072] [13 Regression] gcc/libbacktrace/elf.c:5144: multiple definition of `backtrace_uncompress_zstd' with --with-build-config=bootstrap-asan since r13-4547-g9df1ba9a35b86e
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108072 Jakub Jelinek changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org Status|NEW |ASSIGNED --- Comment #1 from Jakub Jelinek --- Created attachment 54072 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54072&action=edit gcc13-pr108072.patch Untested fix.
[Bug sanitizer/108072] [13 Regression] gcc/libbacktrace/elf.c:5144: multiple definition of `backtrace_uncompress_zstd' with --with-build-config=bootstrap-asan since r13-4547-g9df1ba9a35b86e
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108072 --- Comment #2 from Martin Liška --- Ah, great, I was trying to grep what's difference for other algos, but didn't find this hunk.
[Bug c/108043] [13 Regression] ICE: in fold_convert_loc, at fold-const.cc:2618 on invalid function braced initializer since r13-2205-g14cfa01755a66afb
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108043 Martin Liška changed: What|Removed |Added CC||jsm28 at gcc dot gnu.org, ||marxin at gcc dot gnu.org Summary|[13 Regression] ICE: in |[13 Regression] ICE: in |fold_convert_loc, at|fold_convert_loc, at |fold-const.cc:2618 on |fold-const.cc:2618 on |invalid function braced |invalid function braced |initializer |initializer since ||r13-2205-g14cfa01755a66afb --- Comment #2 from Martin Liška --- Started with r13-2205-g14cfa01755a66afb.
[Bug target/108044] [13 Regression] ICE: in extract_constrain_insn, at recog.cc:2692 (insn does not satisfy its constraints) at -O
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108044 Martin Liška changed: What|Removed |Added CC||marxin at gcc dot gnu.org --- Comment #2 from Martin Liška --- Btw. started with r13-4558-g1dc49df4eeaec311.
[Bug c++/108047] [13 Regression] ICE: unexpected expression of kind implicit_conv_expr since r13-4564-gd081807d8d70e3e8
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108047 Martin Liška changed: What|Removed |Added Summary|[13 Regression] ice:|[13 Regression] ICE: |unexpected expression of|unexpected expression of |kind implicit_conv_expr |kind implicit_conv_expr ||since ||r13-4564-gd081807d8d70e3e8 Status|UNCONFIRMED |NEW CC||marxin at gcc dot gnu.org Ever confirmed|0 |1 Last reconfirmed||2022-12-12 --- Comment #5 from Martin Liška --- Started with r13-4564-gd081807d8d70e3e8.
[Bug c++/108059] internal compiler error: in tsubst_copy, at cp/pt.c:16425
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108059 Martin Liška changed: What|Removed |Added CC||jason at gcc dot gnu.org, ||marxin at gcc dot gnu.org, ||ppalka at gcc dot gnu.org Last reconfirmed||2022-12-12 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 --- Comment #3 from Martin Liška --- Started to be rejected since r8-6334-g018e9cb5e6050e03 and it crashes since r10-7835-ga3a4f6be0c7ac153.
[Bug analyzer/108065] [13 Regression] ICE in make, at analyzer/store.cc:132 since r13-4529-gdfe2ef7f2b6cac70
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108065 Martin Liška changed: What|Removed |Added CC||marxin at gcc dot gnu.org Ever confirmed|0 |1 Summary|[13 Regression] ICE in |[13 Regression] ICE in |make, at|make, at |analyzer/store.cc:132 |analyzer/store.cc:132 since ||r13-4529-gdfe2ef7f2b6cac70 Last reconfirmed||2022-12-12 Status|UNCONFIRMED |NEW --- Comment #1 from Martin Liška --- Started with r13-4529-gdfe2ef7f2b6cac70.
[Bug c++/108066] [13 Regression] ICE in use_pack_expansion_extra_args_p, at cp/pt.cc:12661 since r12-1094-gdb79713150f4f8b6
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108066 Martin Liška changed: What|Removed |Added CC||jason at gcc dot gnu.org, ||marxin at gcc dot gnu.org Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed||2022-12-12 Summary|[13 Regression] ICE in |[13 Regression] ICE in |use_pack_expansion_extra_ar |use_pack_expansion_extra_ar |gs_p, at cp/pt.cc:12661 |gs_p, at cp/pt.cc:12661 ||since ||r12-1094-gdb79713150f4f8b6 --- Comment #2 from Martin Liška --- Started with r12-1094-gdb79713150f4f8b6 where all active branches are affected as the revision was backported.
[Bug c++/108067] Miscompilation with friend function with parameter pack: mismatched argument pack lengths
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108067 Martin Liška changed: What|Removed |Added Last reconfirmed||2022-12-12 Status|UNCONFIRMED |NEW Ever confirmed|0 |1 CC||jason at gcc dot gnu.org, ||marxin at gcc dot gnu.org --- Comment #2 from Martin Liška --- Confirmed.
[Bug libstdc++/108075] Undefined typeinfo for _Float16 (_ZTIDF16_)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108075 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #1 from Jakub Jelinek --- Following shows much more types without typeinfo (only _Float128x is fine because it isn't supported on any target). #include #ifdef __STDCPP_FLOAT16_T__ const std::type_info &a = typeid(decltype(0.0f16)); #endif #ifdef __STDCPP_BFLOAT16_T__ const std::type_info &b = typeid(decltype(0.0bf16)); #endif #ifdef __STDCPP_FLOAT32_T__ const std::type_info &c = typeid(decltype(0.0f32)); #endif #ifdef __STDCPP_FLOAT64_T__ const std::type_info &d = typeid(decltype(0.0f64)); #endif #ifdef __STDCPP_FLOAT128_T__ const std::type_info &e = typeid(decltype(0.0f128)); #endif #ifdef __FLT32X_MAX__ const std::type_info &f = typeid(decltype(0.0f32x)); #endif #ifdef __FLT64X_MAX__ const std::type_info &g = typeid(decltype(0.0f64x)); #endif #ifdef __FLT128X_MAX__ const std::type_info &h = typeid(decltype(0.0f128x)); #endif int main () { }
[Bug tree-optimization/104162] [12 Regression] Missed CSE after lowering of &MEM[ptr_1 + CST]
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=104162 Martin Liška changed: What|Removed |Added CC||alastair.j.irving at gmail dot com --- Comment #8 from Martin Liška --- *** Bug 108074 has been marked as a duplicate of this bug. ***
[Bug tree-optimization/108074] [11/12 Regression] Incorrect stringop-overflow warning
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108074 Martin Liška changed: What|Removed |Added CC||marxin at gcc dot gnu.org Resolution|--- |DUPLICATE Status|UNCONFIRMED |RESOLVED --- Comment #2 from Martin Liška --- Dup. *** This bug has been marked as a duplicate of bug 104162 ***
[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 108074, which changed state. Bug 108074 Summary: [11/12 Regression] Incorrect stringop-overflow warning https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108074 What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |DUPLICATE
[Bug c++/108071] [13 Regression] Build failure in Libreoffice since r13-4565
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108071 --- Comment #7 from Sergei Trofimovich --- Got a build failure of clang-14 on this week's gcc. Minimal example: This week's gcc-13 fails: $ result-bad/bin/g++ -c bug.cc.cc bug.cc.cc: In member function 'void Linker::ConstructJob(const ArgList&) const': bug.cc.cc:19:18: error: call of overloaded 'OptSpecifier(const)' is ambiguous 19 | Args.AddAllArgs({OPT_u}); | ~~~^ bug.cc.cc:9:3: note: candidate: 'OptSpecifier::OptSpecifier(unsigned int)' 9 | OptSpecifier(unsigned); | ^~~~ bug.cc.cc:8:12: note: candidate: 'OptSpecifier::OptSpecifier(bool)' 8 | explicit OptSpecifier(bool); |^~~~ bug.cc.cc:7:8: note: candidate: 'constexpr OptSpecifier::OptSpecifier(const OptSpecifier&)' 7 | struct OptSpecifier { |^~~~ bug.cc.cc:7:8: note: candidate: 'constexpr OptSpecifier::OptSpecifier(OptSpecifier&&)' Lat week's gcc-13 is ok: $ result-good/bin/g++ -c bug.cc.cc Version: $ result-bad/bin/g++ -v Using built-in specs. COLLECT_GCC=/<>/gcc-13.0.0/bin/g++ COLLECT_LTO_WRAPPER=/<>/gcc-13.0.0/libexec/gcc/x86_64-unknown-linux-gnu/13.0.0/lto-wrapper Target: x86_64-unknown-linux-gnu Configured with: Thread model: posix Supported LTO compression algorithms: zlib gcc version 13.0.0 20221211 (experimental) (GCC) Original clang-14 build failure this example was extracted from: /build/clang-src-14.0.6/clang/lib/Driver/ToolChains/RISCVToolchain.cpp: In member function 'virtual void clang::driver::tools::RISCV::Linker::ConstructJob(clang::driver::Compilation&, const clang::driver::JobAction&, const clang::driver::InputInfo&, const clang::driver::InputInfoList&, const llvm::opt::ArgList&, const char*) const': /build/clang-src-14.0.6/clang/lib/Driver/ToolChains/RISCVToolchain.cpp:189:18: error: call of overloaded 'OptSpecifier(const clang::driver::options::ID)' is ambiguous 189 | Args.AddAllArgs(CmdArgs, | ~~~^ 190 | {options::OPT_T_Group, options::OPT_e, options::OPT_s, | ~~ 191 |options::OPT_t, options::OPT_Z_Flag, options::OPT_r}); | ~ In file included from /nix/store/6fphk1hf305pdli056km8qxv66bavb5a-llvm-14.0.6-dev/include/llvm/Option/Option.h:14, from /nix/store/6fphk1hf305pdli056km8qxv66bavb5a-llvm-14.0.6-dev/include/llvm/Option/Arg.h:19, from /nix/store/6fphk1hf305pdli056km8qxv66bavb5a-llvm-14.0.6-dev/include/llvm/Option/ArgList.h:19, from /build/clang-src-14.0.6/clang/include/clang/Driver/Types.h:14, from /build/clang-src-14.0.6/clang/include/clang/Driver/Action.h:13, from /build/clang-src-14.0.6/clang/lib/Driver/ToolChains/Cuda.h:13, from /build/clang-src-14.0.6/clang/lib/Driver/ToolChains/Gnu.h:12, from /build/clang-src-14.0.6/clang/lib/Driver/ToolChains/RISCVToolchain.h:12, from /build/clang-src-14.0.6/clang/lib/Driver/ToolChains/RISCVToolchain.cpp:9: /nix/store/6fphk1hf305pdli056km8qxv66bavb5a-llvm-14.0.6-dev/include/llvm/Option/OptSpecifier.h:24:16: note: candidate: 'llvm::opt::OptSpecifier::OptSpecifier(unsigned int)' 24 | /*implicit*/ OptSpecifier(unsigned ID) : ID(ID) {} |^~~~ /nix/store/6fphk1hf305pdli056km8qxv66bavb5a-llvm-14.0.6-dev/include/llvm/Option/OptSpecifier.h:23:12: note: candidate: 'llvm::opt::OptSpecifier::OptSpecifier(bool)' (deleted) 23 | explicit OptSpecifier(bool) = delete; |^~~~ /nix/store/6fphk1hf305pdli056km8qxv66bavb5a-llvm-14.0.6-dev/include/llvm/Option/OptSpecifier.h:18:7: note: candidate: 'constexpr llvm::opt::OptSpecifier::OptSpecifier(const llvm::opt::OptSpecifier&)' 18 | class OptSpecifier { | ^~~~ /nix/store/6fphk1hf305pdli056km8qxv66bavb5a-llvm-14.0.6-dev/include/llvm/Option/OptSpecifier.h:18:7: note: candidate: 'constexpr llvm::opt::OptSpecifier::OptSpecifier(llvm::opt::OptSpecifier&&)' make[2]: *** [lib/Driver/CMakeFiles/obj.clangDriver.dir/build.make:874: lib/Driver/CMakeFiles/obj.clangDriver.dir/ToolChains/RISCVToolchain.cpp.o] Error 1 shuffle=1857759387 make[1]: *** [CMakeFiles/Makefile2:7653: lib/Driver/CMakeFiles/obj.clangDriver.dir/all] Error 2 shuffle=1857759387 make[1]: *** Waiting for unfinished jobs
[Bug c++/108071] [13 Regression] Build failure in Libreoffice since r13-4565
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108071 --- Comment #8 from Sergei Trofimovich --- (In reply to Sergei Trofimovich from comment #7) > Got a build failure of clang-14 on this week's gcc. Minimal example: Forgot the example itself: // $ cat bug.cc.cc #include class OptSpecifier; struct ArrayRef { ArrayRef(std::initializer_list); }; struct OptSpecifier { explicit OptSpecifier(bool); OptSpecifier(unsigned); }; struct ArgList { void AddAllArgs(ArrayRef) const; }; enum { OPT_u }; struct Linker { void ConstructJob(const ArgList &) const; }; void Linker::ConstructJob(const ArgList &Args) const { Args.AddAllArgs({OPT_u}); }
[Bug libstdc++/98034] std::atomic_signed_lock_free and std::atomic_unsigned_lock_free not defined
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98034 --- Comment #3 from CVS Commits --- The master branch has been updated by Jonathan Wakely : https://gcc.gnu.org/g:320ac807da125e6dc952b3d4abf02daeead88d44 commit r13-4612-g320ac807da125e6dc952b3d4abf02daeead88d44 Author: Jonathan Wakely Date: Mon Dec 12 12:49:40 2022 + libstdc++: Define atomic lock-free type aliases for C++20 [PR98034] libstdc++-v3/ChangeLog: PR libstdc++/98034 * include/std/atomic (__cpp_lib_atomic_lock_free_type_aliases): Define macro. (atomic_signed_lock_free, atomic_unsigned_lock_free): Define aliases. * include/std/version (__cpp_lib_atomic_lock_free_type_aliases): Define macro. * testsuite/29_atomics/atomic/lock_free_aliases.cc: New test.
[Bug libstdc++/108024] std::format_string's constructor has the wrong constraint
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108024 --- Comment #1 from CVS Commits --- The master branch has been updated by Jonathan Wakely : https://gcc.gnu.org/g:6c0f9584013dbedeacacb041d40ce9005b902df0 commit r13-4614-g6c0f9584013dbedeacacb041d40ce9005b902df0 Author: Jonathan Wakely Date: Mon Dec 12 11:40:07 2022 + libstdc++: Fix constraint on std::basic_format_string [PR108024] Also remove some redundant std::move calls for return statements. libstdc++-v3/ChangeLog: PR libstdc++/108024 * include/std/format (basic_format_string): Fix constraint. * testsuite/std/format/format_string.cc: New test.
[Bug libstdc++/108062] Test spdlog c++20 std::format
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108062 Jonathan Wakely changed: What|Removed |Added Resolution|--- |FIXED Target Milestone|--- |13.0 Status|ASSIGNED|RESOLVED Keywords||rejects-valid --- Comment #5 from Jonathan Wakely --- Fixed by r13-4613-gcb363fd9f19eb7
[Bug libstdc++/108024] std::format_string's constructor has the wrong constraint
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108024 Jonathan Wakely changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #2 from Jonathan Wakely --- Fixed, thanks for the report.
[Bug libstdc++/98034] std::atomic_signed_lock_free and std::atomic_unsigned_lock_free not defined
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98034 Jonathan Wakely changed: What|Removed |Added Resolution|--- |FIXED Status|ASSIGNED|RESOLVED --- Comment #4 from Jonathan Wakely --- Implemented for GCC 13
[Bug libstdc++/88322] Implement C++20 library features.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=88322 Bug 88322 depends on bug 98034, which changed state. Bug 98034 Summary: std::atomic_signed_lock_free and std::atomic_unsigned_lock_free not defined https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98034 What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED
[Bug libstdc++/108075] Undefined typeinfo for _Float16 (_ZTIDF16_)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108075 Jakub Jelinek changed: What|Removed |Added Last reconfirmed||2022-12-12 Assignee|unassigned at gcc dot gnu.org |jakub at gcc dot gnu.org Ever confirmed|0 |1 Status|UNCONFIRMED |ASSIGNED --- Comment #2 from Jakub Jelinek --- Created attachment 54073 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54073&action=edit gcc13-pr108075.patch Untested fix. There is nothing that can be done for GCC 12 though.
[Bug c/108076] New: GCC with -O3 produces code which fails to link
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108076 Bug ID: 108076 Summary: GCC with -O3 produces code which fails to link Product: gcc Version: 11.3.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: martid0311 at gmail dot com Target Milestone: --- Created attachment 54074 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54074&action=edit The source code which fails to compile The attached source file ("compiler-output.c") fails to link with GCC with -O3 (compiling for x86_64). I've tested it using "gcc (Ubuntu 11.3.0-1ubuntu1~22.04) 11.3.0", but someone on IRC has confirmed that it's also an issue on "gcc (Debian 12.2.0-9.1) 12.2.0". Running `gcc -O3 compiler-output.c` fails with this set of errors: /usr/bin/ld: /tmp/ccgWgyyV.o: warning: relocation against `.L8' in read-only section `.text.startup' /usr/bin/ld: /tmp/ccgWgyyV.o: in function `main': gnuc-compiler-output.c:(.text.startup+0x2f): undefined reference to `.L7' /usr/bin/ld: gnuc-compiler-output.c:(.text.startup+0x36): undefined reference to `.L15' /usr/bin/ld: gnuc-compiler-output.c:(.text.startup+0x48): undefined reference to `.L5' /usr/bin/ld: gnuc-compiler-output.c:(.text.startup+0x5a): undefined reference to `.L6' /usr/bin/ld: gnuc-compiler-output.c:(.text.startup+0x6a): undefined reference to `.L8' /usr/bin/ld: gnuc-compiler-output.c:(.text.startup+0x76): undefined reference to `.L9' /usr/bin/ld: gnuc-compiler-output.c:(.text.startup+0x90): undefined reference to `.L10' /usr/bin/ld: gnuc-compiler-output.c:(.text.startup+0x9b): undefined reference to `.L11' /usr/bin/ld: gnuc-compiler-output.c:(.text.startup+0xa9): undefined reference to `.L12' /usr/bin/ld: gnuc-compiler-output.c:(.text.startup+0xb5): undefined reference to `.L13' /usr/bin/ld: gnuc-compiler-output.c:(.text.startup+0xcf): undefined reference to `.L14' /usr/bin/ld: warning: creating DT_TEXTREL in a PIE collect2: error: ld returned 1 exit status I've looked at the generated assembly code (using `gcc -S`), and sure enough, the main function contains code like "leaq.L15(%rip), %rdx" and "leaq .L5(%rip), %rax" even though there's no label called .L15 or .L5. The source code contains a label jump table which gets initialized like this: static void *jmp_targets[62]; int main() { jmp_targets[0] = &&instr_0; jmp_targets[1] = &&instr_1; jmp_targets[2] = &&instr_2; jmp_targets[7] = &&instr_7; ... If we change the code to use an initializer list it works: int main() { void *jmp_targets[] = { [0] = &&instr_0, [1] = &&instr_1, [2] = &&instr_2, [7] = &&instr_7, ... Interestingly, it also works if we compile with `-O3 -flto`. Note: the code will segfault unless you provide it command line arguments. If you want to try to run it, run something like `./a.out 5 10`. It will print the sum of the two numbers. Output of `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.3.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-xKiWfi/gcc-11-11.3.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-11-xKiWfi/gcc-11-11.3.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.3.0 (Ubuntu 11.3.0-1ubuntu1~22.04)
[Bug c/108076] GCC with -O3 produces code which fails to link
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108076 --- Comment #1 from Martin Dørum --- Created attachment 54075 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=54075&action=edit Preprocessed source code from gcc --save-temps
[Bug tree-optimization/108076] [10/11/12/13 Regression] GCC with -O3 produces code which fails to link
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108076 Alexander Monakov changed: What|Removed |Added CC||amonakov at gcc dot gnu.org Summary|GCC with -O3 produces code |[10/11/12/13 Regression] |which fails to link |GCC with -O3 produces code ||which fails to link Known to work||8.5.0 Component|c |tree-optimization Keywords||link-failure --- Comment #2 from Alexander Monakov --- GIMPLE if-conversion seems to delete BBs with address-taken labels; works with -fno-tree-loop-if-convert
[Bug rtl-optimization/108070] failure to combine range test to bit test
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108070 --- Comment #2 from Tamar Christina --- Committed, implementing the tbranch optab should allow this to be fixed.
[Bug c++/108071] [13 Regression] Build failure in Libreoffice since r13-4565
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108071 Jason Merrill changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |jason at gcc dot gnu.org Status|NEW |ASSIGNED
[Bug tree-optimization/108076] [10/11/12/13 Regression] GCC with -O3 produces code which fails to link
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108076 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2022-12-12 Known to work||9.1.0, 9.2.0, 9.4.0, 9.5.0 Status|UNCONFIRMED |NEW Target Milestone|--- |10.5 Ever confirmed|0 |1 Known to fail||10.1.0 --- Comment #3 from Andrew Pinski --- Confirmed.
[Bug sanitizer/108060] [10/11/12/13 Regression] UBsan missed an out-of-bound bug at -O0 since r7-1900-g8a1b7b7fd75a3847
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108060 Andrew Pinski changed: What|Removed |Added Summary|UBsan missed an |[10/11/12/13 Regression] |out-of-bound bug at -O0 |UBsan missed an |since |out-of-bound bug at -O0 |r7-1900-g8a1b7b7fd75a3847 |since ||r7-1900-g8a1b7b7fd75a3847 Target Milestone|--- |10.5
[Bug tree-optimization/108076] [10/11/12/13 Regression] GCC with -O3 produces code which fails to link
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108076 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #4 from Jakub Jelinek --- Reduced testcase: static void *j; int v; __attribute__((__leaf__)) int atoi (const char *); int main () { j = &&lab1; &&lab2; atoi ("42"); lab1: lab2: if (v) goto *j; } which fails to link with -O2 starting with r12-4240-g2b8453c401b699ed93c085d0413ab4b5030bcdb8 and with -O2 -ftree-vectorize starting with r10-7522-g75efe9cb1f8938a713ce540dc3b27bc2afcd3fae
[Bug c++/108059] internal compiler error: in tsubst_copy, at cp/pt.c:16425
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108059 --- Comment #4 from Andrew Pinski --- There might be a dup of this bug already but I can't seem to find it.
[Bug tree-optimization/107107] [10/11 Regression] Wrong codegen from TBAA when stores to distinct same-mode types are collapsed?
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=107107 --- Comment #13 from CVS Commits --- The releases/gcc-11 branch has been updated by Richard Biener : https://gcc.gnu.org/g:fa11fc62ddee81a8bc3e69d5e3180695a6dbb666 commit r11-10417-gfa11fc62ddee81a8bc3e69d5e3180695a6dbb666 Author: Richard Biener Date: Thu Oct 6 11:20:16 2022 +0200 tree-optimization/107107 - tail-merging VN wrong-code The following fixes an unintended(?) side-effect of the special MODIFY_EXPR expression entries we add for tail-merging during VN. We shouldn't value-number the virtual operand differently here. PR tree-optimization/107107 * tree-ssa-sccvn.c (visit_reference_op_store): Do not affect value-numbering when doing the tail merging MODIFY_EXPR lookup. * gcc.dg/pr107107.c: New testcase. (cherry picked from commit 85333b9265720fc4e49397301cb16324d2b89aa7)
[Bug target/103698] [12 regression] Code assigned to __attribute__((section(".data"))) generates invalid dwarf: leb128 operand is an undefined symbol
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103698 --- Comment #3 from Andrew Pinski --- The change for binutils came from https://sourceware.org/bugzilla/show_bug.cgi?id=26850
[Bug tree-optimization/108076] [10/11/12/13 Regression] GCC with -O3 produces code which fails to link
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108076 Richard Biener changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |rguenth at gcc dot gnu.org Status|NEW |ASSIGNED --- Comment #5 from Richard Biener --- I will have a look.
[Bug c++/108047] [13 Regression] ICE: unexpected expression of kind implicit_conv_expr since r13-4564-gd081807d8d70e3e8
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108047 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |13.0 Keywords||ice-on-valid-code
[Bug tree-optimization/108068] [10/11/12/13 Regression] decimal floating point signed zero is not honored
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108068 Andrew Pinski changed: What|Removed |Added Ever confirmed|0 |1 Target Milestone|--- |10.5 Known to fail||4.9.0, 6.1.0, 7.1.0, 8.1.0 Summary|decimal signed zero is not |[10/11/12/13 Regression] |honored |decimal floating point ||signed zero is not honored Known to work||4.7.4, 4.8.1 Component|middle-end |tree-optimization Status|UNCONFIRMED |NEW Last reconfirmed||2022-12-12 --- Comment #1 from Andrew Pinski --- Confirmed. Introduced between 4.8 and 4.9. DOM is doing the 0.0 proping.
[Bug tree-optimization/105751] std::array comparision does not inline memcmp
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=105751 Andrew Pinski changed: What|Removed |Added Resolution|--- |FIXED Target Milestone|--- |13.0 Status|NEW |RESOLVED --- Comment #3 from Andrew Pinski --- Fixed for GCC 13 by r13-4600-gd13b86f932ff7b .
[Bug tree-optimization/102805] at -O2, spurious stringop-overflow warning writing to std::vector::back()
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102805 --- Comment #4 from Andrew Pinski --- Looks to be fixed in GCC 12.
[Bug c++/108066] [13 Regression] ICE in use_pack_expansion_extra_args_p, at cp/pt.cc:12661 since r12-1094-gdb79713150f4f8b6
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108066 Patrick Palka changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |ppalka at gcc dot gnu.org CC||ppalka at gcc dot gnu.org Status|NEW |ASSIGNED
[Bug c++/108067] Miscompilation with friend function with parameter pack: mismatched argument pack lengths
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108067 Patrick Palka changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |ppalka at gcc dot gnu.org CC||ppalka at gcc dot gnu.org Status|NEW |ASSIGNED
[Bug driver/93371] -ffile-prefix-map ignored with assembly files
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93371 Konstantin Demin changed: What|Removed |Added CC||rockdrilla at gmail dot com --- Comment #3 from Konstantin Demin --- Test case: Let's consider having file "empty.S" with following contents: // -- cut -- .text ret // -- cut -- $ gcc -c -o empty.S.o empty.S -O2 -g && strings -f empty.S.o | grep -F ${PWD} && echo NOT OK || echo OK empty.S.o: /home/krd/gcc-prefix-case empty.S.o: /home/krd/gcc-prefix-case NOT OK $ gcc -c -o empty.S.o empty.S -O2 -g -fdebug-prefix-map=${PWD}=. && strings -f empty.S.o | grep -F ${PWD} && echo NOT OK || echo OK OK $ gcc -c -o empty.S.o empty.S -O2 -g -ffile-prefix-map=${PWD}=. && strings -f empty.S.o | grep -F ${PWD} && echo NOT OK || echo OK empty.S.o: /home/krd/gcc-prefix-case empty.S.o: /home/krd/gcc-prefix-case NOT OK $ gcc -c -o empty.S.o empty.S -O2 -g -ffile-prefix-map=${PWD}=. -Wa,--debug-prefix-map,${PWD}=. && strings -f empty.S.o | grep -F ${PWD} && echo NOT OK || echo OK OK $ lsb_release -a No LSB modules are available. Distributor ID: Debian Description:Debian GNU/Linux bookworm/sid Release:n/a Codename: bookworm $ dpkg-query -W -f='${Version}\n' gcc-12 12.2.0-10 $ gcc -v Using built-in specs. COLLECT_GCC=gcc COLLECT_LTO_WRAPPER=/usr/lib/gcc/x86_64-linux-gnu/12/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='Debian 12.2.0-10' --with-bugurl=file:///usr/share/doc/gcc-12/README.Bugs --enable-languages=c,ada,c++,go,d,fortran,objc,obj-c++,m2 --prefix=/usr --with-gcc-major-version-only --program-suffix=-12 --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-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-12-w47ffq/gcc-12-12.2.0/debian/tmp-nvptx/usr,amdgcn-amdhsa=/build/gcc-12-w47ffq/gcc-12-12.2.0/debian/tmp-gcn/usr --enable-offload-defaulted --without-cuda-driver --enable-checking=release --build=x86_64-linux-gnu --host=x86_64-linux-gnu --target=x86_64-linux-gnu Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 12.2.0 (Debian 12.2.0-10)
[Bug libstdc++/108062] Test spdlog c++20 std::format
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108062 --- Comment #6 from Jamaika --- Thanks Jonathan Thanks for the quick fix of the given errors. I realize that there may be other errors not necessarily from gcc. Test new codecs HTJPEG2000 C++20 Grok with spdlog 1.11.0 for Windows 10 In file included from c:\gcc1300\x86_64-w64-mingw32\include\spdlog\fmt\fmt.h:14, from c:\gcc1300\x86_64-w64-mingw32\include\spdlog\common.h:50, from c:\gcc1300\x86_64-w64-mingw32\include\spdlog\spdlog.h:12, from common.h:40, from PNMFormat.cpp:29: c:\gcc1300\include\c++\13.0.0\format: In instantiation of 'static std::basic_format_args<_Context>::_Store<_Args>::_Element_t std::basic_format_args<_Context>::_Store<_Args>::_S_make_elt(_Tp&) [with _Tp = PNM_COLOUR_SPACE; _Args = {std::basic_format_arg, char> >::handle, std::basic_format_arg, char> >::handle}; _Context = std::basic_format_context, char>; _Element_t = std::basic_format_args, char> >::_Store, char> >::handle, std::basic_format_arg, char> >::handle>::_Element_t]': c:\gcc1300\include\c++\13.0.0\format:3248:25: required from 'std::basic_format_args<_Context>::_Store<_Args>::_Store(_Tp& ...) [with _Tp = {PNM_COLOUR_SPACE, PNM_COLOUR_SPACE}; _Args = {std::basic_format_arg, char> >::handle, std::basic_format_arg, char> >::handle}; _Context = std::basic_format_context, char>]' c:\gcc1300\include\c++\13.0.0\format:3300:14: required from 'auto std::make_format_args(_Args&& ...) [with _Context = basic_format_context<__format::_Sink_iter, char>; _Args = {PNM_COLOUR_SPACE&, PNM_COLOUR_SPACE&}]' c:\gcc1300\x86_64-w64-mingw32\include\spdlog\logger.h:372:88: required from 'void spdlog::logger::log_(spdlog::source_loc, spdlog::level::level_enum, spdlog::string_view_t, Args&& ...) [with Args = {PNM_COLOUR_SPACE&, PNM_COLOUR_SPACE&}; spdlog::string_view_t = std::basic_string_view]' c:\gcc1300\x86_64-w64-mingw32\include\spdlog\logger.h:90:13: required from 'void spdlog::logger::log(spdlog::source_loc, spdlog::level::level_enum, spdlog::format_string_t, Args&& ...) [with Args = {PNM_COLOUR_SPACE&, PNM_COLOUR_SPACE&}; spdlog::format_string_t = std::basic_string_view]' c:\gcc1300\x86_64-w64-mingw32\include\spdlog\logger.h:96:12: required from 'void spdlog::logger::log(spdlog::level::level_enum, spdlog::format_string_t, Args&& ...) [with Args = {PNM_COLOUR_SPACE&, PNM_COLOUR_SPACE&}; spdlog::format_string_t = std::basic_string_view]' c:\gcc1300\x86_64-w64-mingw32\include\spdlog\logger.h:164:12: required from 'void spdlog::logger::warn(spdlog::format_string_t, Args&& ...) [with Args = {PNM_COLOUR_SPACE&, PNM_COLOUR_SPACE&}; spdlog::format_string_t = std::basic_string_view]' c:\gcc1300\x86_64-w64-mingw32\include\spdlog\spdlog.h:167:31: required from 'void spdlog::warn(format_string_t, Args&& ...) [with Args = {PNM_COLOUR_SPACE&, PNM_COLOUR_SPACE&}; format_string_t = std::basic_string_view]' PNMFormat.cpp:600:16: required from here c:\gcc1300\include\c++\13.0.0\format:3237:40: error: no matching function for call to 'std::basic_format_arg, char> >::basic_format_arg(PNM_COLOUR_SPACE&)' 3237 | basic_format_arg<_Context> __arg(__v); |^ c:\gcc1300\include\c++\13.0.0\format:3005:9: note: candidate: 'template requires __formattable_with<_Tp, _Context, typename _Context::formatter_type::type>, std::basic_format_parse_context > std::basic_format_arg<_Context>::basic_format_arg(_Tp&) [with _Context = std::basic_format_context, char>]' 3005 | basic_format_arg(_Tp& __v) noexcept | ^~~~ c:\gcc1300\include\c++\13.0.0\format:3005:9: note: template argument deduction/substitution failed: c:\gcc1300\include\c++\13.0.0\format:3005:9: note: constraints not satisfied In file included from c:\gcc1300\include\c++\13.0.0\compare:37, from c:\gcc1300\include\c++\13.0.0\bits\char_traits.h:48, from c:\gcc1300\include\c++\13.0.0\string:42, from IImageFormat.h:21, from ImageFormat.h:20, from PNMFormat.h:19, from PNMFormat.cpp:26: c:\gcc1300\include\c++\13.0.0\concepts: In substitution of 'template requires __formattable_with<_Tp, _Context, typename _Context::formatter_type::type>, std::basic_format_parse_context > std::basic_format_arg, char> >::basic_format_arg(_Tp&) [with _Tp = std::basic_format_context, char>]': c:\gcc1300\include\c++\13.0.0\format:3237:33: required from 'static std::basic_format_args<_Context>::_Store<_Args>::_Element_t std::basic_format_args<_Context>::_Store<_Args>::_S_make_elt(_Tp&) [with _Tp = PNM_COLOUR_SPACE; _Args = {std::basic_format_arg, char> >::handle, std::basic_format_arg, char> >::handle}; _Context = std::basic_format_context, char>; _Element_t = std::basic_format_args, char> >::_Store, char> >::handle, std::basic_format_arg, char> >::handle>::_Element_t]' c:\gcc1300\include\c++\13.0.0\format:3
[Bug driver/93371] -ffile-prefix-map ignored with assembly files
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93371 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |13.0 Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #4 from Andrew Pinski --- Fixed for GCC 13.
[Bug c++/108077] New: [13 Regression] Can't brace initialize container of llvm::opt::OptSpecifier
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=108077 Bug ID: 108077 Summary: [13 Regression] Can't brace initialize container of llvm::opt::OptSpecifier Product: gcc Version: 13.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: romain.geissler at amadeus dot com Target Milestone: --- Hi, I can't build llvm 15 with the current gcc 13, while it was working a few weeks ago. I tried to reduce a bit, and I have ended up with this snippet (compiled with -std=gnu++17): < class OptSpecifier { unsigned ID = 0; public: explicit OptSpecifier(bool) = delete; // Works if this is commented OptSpecifier(unsigned ID) : ID(ID) {} }; //void f(llvm::ArrayRef) {} void f(std::list) {} int main() { f({1U, 2U, 3U}); // Works f({1, 2, 3}); // Fails with gcc 13 } END_OF_FILE According to Compiler Explorer, this seems to build fine with any clang version, and any gcc <= 12, but not with current gcc 13 trunk. The error is the following: In file included from /opt/compiler-explorer/gcc-trunk-20221212/include/c++/13.0.0/x86_64-linux-gnu/bits/c++allocator.h:33, from /opt/compiler-explorer/gcc-trunk-20221212/include/c++/13.0.0/bits/allocator.h:46, from /opt/compiler-explorer/gcc-trunk-20221212/include/c++/13.0.0/list:63, from :1: /opt/compiler-explorer/gcc-trunk-20221212/include/c++/13.0.0/bits/new_allocator.h: In instantiation of 'void std::__new_allocator<_Tp>::construct(_Up*, _Args&& ...) [with _Up = OptSpecifier; _Args = {const int&}; _Tp = std::_List_node]': /opt/compiler-explorer/gcc-trunk-20221212/include/c++/13.0.0/bits/alloc_traits.h:524:17: required from 'static void std::allocator_traits >::construct(allocator_type&, _Up*, _Args&& ...) [with _Up = OptSpecifier; _Args = {const int&}; _Tp = std::_List_node; allocator_type = std::allocator >]' /opt/compiler-explorer/gcc-trunk-20221212/include/c++/13.0.0/bits/stl_list.h:713:33: required from 'std::__cxx11::list<_Tp, _Alloc>::_Node* std::__cxx11::list<_Tp, _Alloc>::_M_create_node(_Args&& ...) [with _Args = {const int&}; _Tp = OptSpecifier; _Alloc = std::allocator; _Node = std::__cxx11::list::_Node]' /opt/compiler-explorer/gcc-trunk-20221212/include/c++/13.0.0/bits/stl_list.h:2005:32: required from 'void std::__cxx11::list<_Tp, _Alloc>::_M_insert(iterator, _Args&& ...) [with _Args = {const int&}; _Tp = OptSpecifier; _Alloc = std::allocator; iterator = std::__cxx11::list::iterator]' /opt/compiler-explorer/gcc-trunk-20221212/include/c++/13.0.0/bits/stl_list.h:1321:19: required from 'std::__cxx11::list<_Tp, _Alloc>::reference std::__cxx11::list<_Tp, _Alloc>::emplace_back(_Args&& ...) [with _Args = {const int&}; _Tp = OptSpecifier; _Alloc = std::allocator; reference = OptSpecifier&]' /opt/compiler-explorer/gcc-trunk-20221212/include/c++/13.0.0/bits/stl_list.h:1934:18: required from 'void std::__cxx11::list<_Tp, _Alloc>::_M_initialize_dispatch(_InputIterator, _InputIterator, std::__false_type) [with _InputIterator = const int*; _Tp = OptSpecifier; _Alloc = std::allocator]' /opt/compiler-explorer/gcc-trunk-20221212/include/c++/13.0.0/bits/stl_list.h:882:26: required from 'std::__cxx11::list<_Tp, _Alloc>::list(_InputIterator, _InputIterator, const allocator_type&) [with _InputIterator = const int*; = void; _Tp = OptSpecifier; _Alloc = std::allocator; allocator_type = std::allocator]' :17:6: required from here /opt/compiler-explorer/gcc-trunk-20221212/include/c++/13.0.0/bits/new_allocator.h:187:11: error: call of overloaded 'OptSpecifier(const int&)' is ambiguous 187 | { ::new((void *)__p) _Up(std::forward<_Args>(__args)...); } | ^~ :8:3: note: candidate: 'OptSpecifier::OptSpecifier(unsigned int)' 8 | OptSpecifier(unsigned ID) : ID(ID) {} | ^~~~ :7:12: note: candidate: 'OptSpecifier::OptSpecifier(bool)' (deleted) 7 | explicit OptSpecifier(bool) = delete; // Works if this is commented |^~~~ :3:7: note: candidate: 'constexpr OptSpecifier::OptSpecifier(const OptSpecifier&)' 3 | class OptSpecifier { | ^~~~ :3:7: note: candidate: 'constexpr OptSpecifier::OptSpecifier(OptSpecifier&&)' Compiler returned: 1