[Bug target/35363] Missing bit field coalescing optimization
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=35363 Andrew Pinski changed: What|Removed |Added Resolution|--- |FIXED Status|NEW |RESOLVED CC||pinskia at gcc dot gnu.org Target Milestone|--- |8.0 --- Comment #9 from Andrew Pinski --- Store merging fixes this for GCC 8 so closing as fixed: _5 = MEM[(struct A *)&a]; _6 = _5 & 4261413056; _7 = _6 | 2074; MEM[(struct A *)&a] = _7; I Will have to make sure we don't regress when adding lowering.
[Bug tree-optimization/53947] [meta-bug] vectorizer missed-optimizations
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=53947 Bug 53947 depends on bug 85283, which changed state. Bug 85283 Summary: Generates 20 lines of assembly while only one assembly instruction is enough. https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85283 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |FIXED
[Bug tree-optimization/85283] Generates 20 lines of assembly while only one assembly instruction is enough.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=85283 Andrew Pinski changed: What|Removed |Added Resolution|--- |FIXED Status|NEW |RESOLVED Target Milestone|--- |11.0 --- Comment #3 from Andrew Pinski --- Fixed in GCC 11. Where the x86_64 target emulates 2 float vector inside SSE.
[Bug target/47769] [missed optimization] use of btr (bit test and reset)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47769 Andrew Pinski changed: What|Removed |Added Severity|minor |enhancement Last reconfirmed|2011-02-16 19:46:40 |2021-11-27
[Bug rtl-optimization/98962] Perform bitops on floats directly with SSE
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98962 Andrew Pinski changed: What|Removed |Added CC||the4naves at gmail dot com --- Comment #6 from Andrew Pinski --- *** Bug 101311 has been marked as a duplicate of this bug. ***
[Bug target/101311] GCC refuses to use SSE registers to carry out an explicit XOR on a float.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101311 Andrew Pinski changed: What|Removed |Added Resolution|--- |DUPLICATE Status|NEW |RESOLVED --- Comment #4 from Andrew Pinski --- Dup of bug 98962. *** This bug has been marked as a duplicate of bug 98962 ***
[Bug target/64897] Floating-point "and" not optimized on x86-64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64897 Andrew Pinski changed: What|Removed |Added CC||amonakov at gcc dot gnu.org --- Comment #3 from Andrew Pinski --- *** Bug 93039 has been marked as a duplicate of this bug. ***
[Bug target/93039] Fails to use SSE bitwise ops for float-as-int manipulations
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=93039 Andrew Pinski changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE --- Comment #6 from Andrew Pinski --- Dup of bug 64897. *** This bug has been marked as a duplicate of bug 64897 ***
[Bug target/64897] Floating-point "and" not optimized on x86-64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64897 --- Comment #2 from Andrew Pinski --- Since GCC 9 we get for fand1: movq%xmm0, %rax btrq$63, %rax movq%rax, %xmm0 ret The question comes does the movement between sse registers and gprs is cheaper than the load that and would cause.
[Bug libffi/64618] Missing GCC changes in libffi
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64618 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Last reconfirmed||2021-11-28 --- Comment #1 from Andrew Pinski --- commit be24203d712c030b4091a50f5d84b7372d5c990c commit 6b5229ed95ac50728f05fe5f3fd02d697775a5db Was rewritten: https://github.com/libffi/libffi/commit/542e004710e3f1d7c137bba305a16538cd6257d6 because of other changes. commit ab6e5665c356663d99a529db9e38bd79cecc8c35 Was rejected upstream as not really needed. commit 8cd092c9edd1e155a21a2547c97b80db9e0a1c26 With the latest merge: 4824ed41ba7cd63e60fd9f8769a58b79935a90d1 That only leaves: commit faff04c34663ff7a5a95ded8a07a46ba81944cac commit 3a4c5379799b896220ac84e917f3eb5a5e5f61de
[Bug libffi/64620] Missing changes from libffi upstream
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=64620 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |12.0 Resolution|--- |FIXED Status|NEW |RESOLVED --- Comment #1 from Andrew Pinski --- apinski@xeond:~/src/upstream-gcc-git/gcc/libffi$ git log ./testsuite/libffi.closures/unwindtest.cc commit 92456a4e5658e138e2cea79e390e3306b07685b0 Author: H.J. Lu Date: Tue Aug 31 07:14:47 2021 -0700 libffi: Sync with libffi 3.4.2 Merged commit: f9ea41683444ebe11cfa45b05223899764df28fb
[Bug target/46219] Generate indirect jump instruction on x86-64
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=46219 Andrew Pinski changed: What|Removed |Added Keywords||missed-optimization Status|REOPENED|NEW Last reconfirmed|2010-10-28 22:58:27 |2021-11-27 Severity|normal |enhancement
[Bug tree-optimization/24026] cleanup_control_expr_graph uses fold to fold COND_EXPR_COND
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=24026 Andrew Pinski changed: What|Removed |Added Resolution|--- |FIXED Status|NEW |RESOLVED See Also||https://gcc.gnu.org/bugzill ||a/show_bug.cgi?id=67915 --- Comment #2 from Andrew Pinski --- fold is never used there since r0-88576; we use gimple_fold but gimple_fold at the time called fold, with the fix for PR 67915, we moved over to gimplify_simplify instead. See https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67915#c1 also which describes this exact issue. We have now: if (gimple_simplify (stmt, &res_op, NULL, no_follow_ssa_edges, no_follow_ssa_edges) && res_op.code == INTEGER_CST) val = res_op.ops[0]; And a different order too: /* Do cleanup_control_flow_bb in PRE order. */ static bool cleanup_control_flow_pre () So I am going to say this is fixed.
[Bug driver/48691] Assembler file clobbered with -save-temps (LTO)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=48691 --- Comment #2 from Andrew Pinski --- I think this was fixed in GCC 11.
[Bug tree-optimization/47255] Missed CSE optimization with inline functions, and __attribute__((const))
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=47255 Andrew Pinski changed: What|Removed |Added Severity|normal |enhancement Last reconfirmed|2011-01-12 11:10:22 |2021-11-27
[Bug target/34064] ARM: missed optimization (conditional store)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=34064 --- Comment #3 from Andrew Pinski --- The trunk we get: movsr3, #0 .L2: cmp r0, r1 bcc .L3 @ sp needed bx lr .L3: stmia r0!, {r3} b .L2
[Bug target/44132] [4.6 Regression] emutls is broken under a range of circumstances.
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44132 --- Comment #44 from Andrew Pinski --- *** Bug 44450 has been marked as a duplicate of this bug. ***
[Bug middle-end/44450] gcc.dg/lto/20090210 fails with emutls
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=44450 Andrew Pinski changed: What|Removed |Added Resolution|--- |DUPLICATE Status|UNCONFIRMED |RESOLVED --- Comment #1 from Andrew Pinski --- Dup of bug 44132. The fix went in July 2010. *** This bug has been marked as a duplicate of bug 44132 ***
[Bug middle-end/38856] loop iv detection failure
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=38856 Andrew Pinski changed: What|Removed |Added Known to fail|| --- Comment #9 from Andrew Pinski --- I think the original issue has been fixed since GCC 4.5.0 or so.
[Bug tree-optimization/26939] loop number of iterations analysis not working
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=26939 --- Comment #25 from Andrew Pinski --- In GCC 4.7 (and above), we get: Analyzing # of iterations of loop 2 exit condition [1, + , 1](no_overflow) <= i1_6(D) bounds on difference of bases: -1 ... 2147483646 result: under assumptions i1_6(D) != 2147483647 # of iterations (unsigned int) i1_6(D), bounded by 2147483647 Analyzing # of iterations of loop 1 exit condition [1, + , 1](no_overflow) <= j1_4(D) bounds on difference of bases: -1 ... 2147483646 result: under assumptions j1_4(D) != 2147483647 # of iterations (unsigned int) j1_4(D), bounded by 2147483647 Is there anything to fix in this bug left? (In reply to Dmitry G. Dyachenko from comment #24) > is this the same problem? -- 'i*2 < 35' can't overflow The warning for this one is gone in GCC 4.6.0+
[Bug c/42136] Inconsistent strict-aliasing warning with cast from char[]
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=42136 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |7.2 Resolution|--- |FIXED Status|NEW |RESOLVED Known to work||7.2.0, 8.1.0 Known to fail||7.1.0 See Also||https://gcc.gnu.org/bugzill ||a/show_bug.cgi?id=80593 --- Comment #2 from Andrew Pinski --- Fixed in GCC 7.2.0 and above by the patch which fixed PR 80593.
[Bug tree-optimization/32073] Loop unrolling does not exploit VRP for loop bound
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=32073 --- Comment #2 from Andrew Pinski --- Note there is a few things here that can be improved even more. With a slightly different testcase: void short_loop(int* __restrict dest, int* __restrict src, int count) { // same happens for assert(count <= 4) and if(count > 4) exit(-1) if(count > 4) count = 4; for(int i=0; i < count; i++) dest[i] = src[i] + 1; } In VRP2 we have: _5 = MIN_EXPR ; if (count_10(D) > 0) goto ; [80.00%] else goto ; [20.00%] [local count: 171798694]: _23 = (unsigned int) _5; niters.4_24 = _5 > 0 ? _23 : 1; Which we don't optimize niters.4_24 to just _23. Without the +1 we optimize the above to memcpy (and still have the above issue too) and the expansion there needs help (which I thought I filed as another bug but I can't find it). There might be other issues where the vectorizer and such don't see that the count <= 4 and count >= 1.
[Bug target/31238] Too many instructions as not reversing loop
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=31238 Andrew Pinski changed: What|Removed |Added Target Milestone|--- |4.5.0 Status|NEW |RESOLVED Known to fail||4.1.2, 4.4.7 Resolution|--- |FIXED See Also||https://gcc.gnu.org/bugzill ||a/show_bug.cgi?id=40886 Known to work||4.5.3, 4.7.1, 5.1.0, 7.1.0 --- Comment #3 from Andrew Pinski --- Fixed in GCC 4.5.0; most likely by the patch which fixed PR 40886.
[Bug target/11997] libgcc build fails because crtbeginS.o not built for sh-netbsdelf
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=11997 Andrew Pinski changed: What|Removed |Added Status|NEW |RESOLVED Resolution|--- |WONTFIX --- Comment #5 from Andrew Pinski --- This is only a bug for pre NetBSD 1.7 (2.0). Anything older than that was not setup to use GCC's crtstuff and really bug a not. Since NetBSD 2.0 was released in 2004, this is a won't fix. Plus this might have been fixed along the way when libgcc configuration went into its own directory.
[Bug other/19089] Environment variable TMP may yield gcc: abort with internal error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=19089 Andrew Pinski changed: What|Removed |Added URL||https://gcc.gnu.org/piperma ||il/gcc-patches/2021-Novembe ||r/585591.html Keywords||patch --- Comment #5 from Andrew Pinski --- Patch submitted: https://gcc.gnu.org/pipermail/gcc-patches/2021-November/585591.html The only issue is hosts where S_ISDIR is not defined (I don't think there is any left but it least it will just fail like it used to).
[Bug other/19089] Environment variable TMP may yield gcc: abort with internal error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=19089 --- Comment #4 from Andrew Pinski --- Something like after the access check has passed: #ifdef S_ISDIR struct stat s; if (stat(dir, &s) <0) return NULL; if (!S_ISDIR (s.st_mode)) return NULL; #endif
[Bug other/19089] Environment variable TMP may yield gcc: abort with internal error
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=19089 Andrew Pinski changed: What|Removed |Added Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot gnu.org Status|NEW |ASSIGNED --- Comment #3 from Andrew Pinski --- I can't reproduce the crash any more but it should not be hard to fix. The problem is in make-temp-file.c where we do: static inline const char * try_dir (const char *dir, const char *base) { if (base != 0) return base; if (dir != 0 && access (dir, R_OK | W_OK | X_OK) == 0) return dir; return 0; } But we don't check to see if the dir is actually a directory.
[Bug bootstrap/103306] [12 Regression] parallel build hangs since r12-5234-g04c5a9 when /usr/include includes broken symbolic links
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103306 Andrew Pinski changed: What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED --- Comment #20 from Andrew Pinski --- Fixed so closing.
[Bug sanitizer/62157] make distclean error when libsanitizer is configured not to build 'tsan'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62157 Andrew Pinski changed: What|Removed |Added Keywords||patch URL||https://gcc.gnu.org/piperma ||il/gcc-patches/2021-Novembe ||r/585590.html --- Comment #6 from Andrew Pinski --- Patch submitted: https://gcc.gnu.org/pipermail/gcc-patches/2021-November/585590.html
[Bug c++/94484] ICE in cp_finish_decl, at cp/decl.c:7447
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=94484 Andrew Pinski changed: What|Removed |Added Last reconfirmed|2020-04-04 00:00:00 |2021-11-27 --- Comment #3 from Andrew Pinski --- Note the ICE on the trunk is: :3:34: internal compiler error: tree check: expected var_decl or function_decl or field_decl or type_decl or concept_decl or template_decl, have parm_decl in push_template_decl, at cp/pt.c:6133 3 | [](auto a, int = ({decltype(a) i; i * 2;})){}(a); | ^ 0x20e9d19 internal_error(char const*, ...) ???:0
[Bug c++/84653] internal compiler error: Segmentation fault (prep_operand)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=84653 Andrew Pinski changed: What|Removed |Added Keywords||needs-bisection --- Comment #2 from Andrew Pinski --- This looks like it was fixed in the GCC 8.1.0 release.
[Bug c/101057] [gimplefe] GIMPLE frontend issues
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101057 Bug 101057 depends on bug 101035, which changed state. Bug 101035 Summary: ICE: in wide_int_to_tree_1, at tree.c:1751 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101035 What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED
[Bug c/101035] ICE: in wide_int_to_tree_1, at tree.c:1751
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101035 Andrew Pinski changed: What|Removed |Added Keywords|needs-bisection | Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED See Also||https://gcc.gnu.org/bugzill ||a/show_bug.cgi?id=102763 --- Comment #2 from Andrew Pinski --- Fixed by r12-4431 which fixed PR 102763.
[Bug c++/98042] error diagnostic for unmatched parentheses could be improved
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98042 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2021-11-28 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Severity|normal |enhancement --- Comment #1 from Andrew Pinski --- Confirmed, the C front-end does a better job: :4:11: error: expected ')' before 'double' 4 | ((char *double(foo))[(sizeof(foo)-1)] = '\0'; // ')' instead of 'double' |~ ^~ | )
[Bug c/101035] ICE: in wide_int_to_tree_1, at tree.c:1751
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101035 Andrew Pinski changed: What|Removed |Added Keywords||needs-bisection --- Comment #1 from Andrew Pinski --- Looks fixed on the trunk.
[Bug middle-end/29231] need a way to produce trampolines not on the stack
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=29231 Andrew Pinski changed: What|Removed |Added Ever confirmed|0 |1 Status|UNCONFIRMED |NEW Last reconfirmed||2021-11-28 --- Comment #5 from Andrew Pinski --- .
[Bug sanitizer/62157] make distclean error when libsanitizer is configured not to build 'tsan'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62157 --- Comment #5 from Andrew Pinski --- From: https://www.gnu.org/software/automake/manual/html_node/SUBDIRS-vs-DIST_005fSUBDIRS.html If SUBDIRS contains AC_SUBST variables, DIST_SUBDIRS will not be defined correctly because Automake does not know the possible values of these variables. In this case DIST_SUBDIRS needs to be defined manually. And from https://www.gnu.org/software/automake/manual/html_node/Unconfigured-Subdirectories.html For instance, if you define SUBDIRS conditionally using AC_SUBST and do not define DIST_SUBDIRS explicitly, it will be default to ‘$(SUBDIRS)’; another possibility is to force DIST_SUBDIRS = $(SUBDIRS).
[Bug sanitizer/62157] make distclean error when libsanitizer is configured not to build 'tsan'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62157 Andrew Pinski changed: What|Removed |Added Ever confirmed|0 |1 Status|UNCONFIRMED |ASSIGNED Assignee|unassigned at gcc dot gnu.org |pinskia at gcc dot gnu.org Last reconfirmed||2021-11-27 --- Comment #4 from Andrew Pinski --- I have a patch.
[Bug bootstrap/3415] make distclean (in gcc subdirectory) does not clean up all the way
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=3415 Bug 3415 depends on bug 100987, which changed state. Bug 100987 Summary: make distclean error "hwasan: No such file or directory" https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100987 What|Removed |Added Status|NEW |RESOLVED Resolution|--- |DUPLICATE
[Bug sanitizer/62157] make distclean error when libsanitizer is configured not to build 'tsan'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=62157 Andrew Pinski changed: What|Removed |Added CC||antony at cosmologist dot info --- Comment #3 from Andrew Pinski --- *** Bug 100987 has been marked as a duplicate of this bug. ***
[Bug sanitizer/100987] make distclean error "hwasan: No such file or directory"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100987 Andrew Pinski changed: What|Removed |Added Resolution|--- |DUPLICATE Status|NEW |RESOLVED --- Comment #3 from Andrew Pinski --- This is a dup of bug 62157 really. *** This bug has been marked as a duplicate of bug 62157 ***
[Bug libstdc++/103453] ASAN detection with clang
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103453 Jonathan Wakely changed: What|Removed |Added Last reconfirmed||2021-11-27 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW
[Bug sanitizer/100987] make distclean error "hwasan: No such file or directory"
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=100987 Andrew Pinski changed: What|Removed |Added Last reconfirmed||2021-11-27 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW CC||pinskia at gcc dot gnu.org --- Comment #2 from Andrew Pinski --- Confirmed.
[Bug c++/98071] no_unique_address and reusing tail padding
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=98071 Andrew Pinski changed: What|Removed |Added Resolution|--- |INVALID Status|UNCONFIRMED |RESOLVED --- Comment #2 from Andrew Pinski --- Invalid as mentioned.
[Bug c++/97285] Interaction between no_unique_address and has_unique_object_representations
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=97285 --- Comment #2 from Andrew Pinski --- clang has fixed this on the their trunk. That is std::has_unique_object_representations_v is true there.
[Bug fortran/103263] ICE in gfc_check_reshape, at fortran/check.c:4830
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103263 anlauf at gcc dot gnu.org changed: What|Removed |Added CC||anlauf at gcc dot gnu.org --- Comment #4 from anlauf at gcc dot gnu.org --- Likely fixed by this constructor patch: https://gcc.gnu.org/pipermail/fortran/2021-November/057066.html
[Bug fortran/102043] Wrong array types used for negative stride accesses
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=102043 Mikael Morin changed: What|Removed |Added Attachment #51839|0 |1 is obsolete|| --- Comment #26 from Mikael Morin --- Created attachment 51891 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51891&action=edit latest patch Here is the patch I have arrived to so far. I have managed to reduce the number of regressions to 24. The ones that remain are more and more difficult to analyze and fix, with some iterating code for internal io that seems mishandled, and a few bind(c) stuff. There are also middle-end regressions (loop versioning) that I haven’t looked at.
[Bug libstdc++/103453] New: ASAN detection with clang
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103453 Bug ID: 103453 Summary: ASAN detection with clang Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: libstdc++ Assignee: unassigned at gcc dot gnu.org Reporter: glisse at gcc dot gnu.org Target Milestone: --- Libstdc++ uses __SANITIZE_ADDRESS__ to detect if ASAN is enabled, but with clang that should be __has_feature(address_sanitizer). This means that _GLIBCXX_SANITIZE_STD_ALLOCATOR is not automatically defined, and thus defining _GLIBCXX_SANITIZE_VECTOR has no effect. (noticed in https://stackoverflow.com/q/70117470/1918193 )
[Bug middle-end/103431] [12 Regression] wrong code with -O -fno-tree-bit-ccp -fno-tree-dominator-opts since r12-4853-g2a83259f837e5cbd
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103431 Jakub Jelinek changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #8 from Jakub Jelinek --- Fixed.
[Bug other/63426] [meta-bug] Issues found with -fsanitize=undefined
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=63426 Bug 63426 depends on bug 103435, which changed state. Bug 103435 Summary: [12 Regression] gcc/gimple-ssa-store-merging.c:879:13: runtime error: shift exponent 64 is too large for 64-bit type 'long unsigned int' https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103435 What|Removed |Added Status|UNCONFIRMED |RESOLVED Resolution|--- |FIXED
[Bug tree-optimization/103435] [12 Regression] gcc/gimple-ssa-store-merging.c:879:13: runtime error: shift exponent 64 is too large for 64-bit type 'long unsigned int'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103435 Jakub Jelinek changed: What|Removed |Added Resolution|--- |FIXED Status|UNCONFIRMED |RESOLVED --- Comment #3 from Jakub Jelinek --- Fixed.
[Bug middle-end/103431] [12 Regression] wrong code with -O -fno-tree-bit-ccp -fno-tree-dominator-opts since r12-4853-g2a83259f837e5cbd
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103431 --- Comment #7 from CVS Commits --- The master branch has been updated by Jakub Jelinek : https://gcc.gnu.org/g:f7e4f57f1c7883721b6f5ad48953e10ebfb5a756 commit r12-5558-gf7e4f57f1c7883721b6f5ad48953e10ebfb5a756 Author: Jakub Jelinek Date: Sat Nov 27 13:02:06 2021 +0100 x86: Fix up x86_{,64_}sh{l,r}d patterns [PR103431] The following testcase is miscompiled because the x86_{,64_}sh{l,r}d patterns don't properly describe what the instructions do. One thing is left out, in particular that there is initial count &= 63 for sh{l,r}dq and initial count &= 31 for sh{l,r}d{l,w}. And another thing not described properly, in particular the behavior when count (after the masking) is 0. The pattern says it is e.g. res = (op0 << op2) | (op1 >> (64 - op2)) but that triggers UB on op1 >> 64. For op2 0 we actually want res = (op0 << op2) | 0 When constants are propagated to these patterns during RTL optimizations, both such problems trigger wrong-code issues. This patch represents the patterns as e.g. res = (op0 << (op2 & 63)) | (unsigned long long) ((uint128_t) op1 >> (64 - (op2 & 63))) so there is both the initial masking and op2 == 0 behavior results in zero being ored. The patch introduces alternate patterns for constant op2 where simplify-rtx.c will fold those expressions into simple numbers, and define_insn_and_split pre-reload splitter for how the patterns looked before into the new form, so that it can pattern match during combine even computations that assumed the shift amount will be in the range of 1 .. bitsize-1. 2021-11-27 Jakub Jelinek PR middle-end/103431 * config/i386/i386.md (x86_64_shld, x86_shld, x86_64_shrd, x86_shrd): Change insn pattern to accurately describe the instructions. (*x86_64_shld_1, *x86_shld_1, *x86_64_shrd_1, *x86_shrd_1): New define_insn patterns. (*x86_64_shld_2, *x86_shld_2, *x86_64_shrd_2, *x86_shrd_2): New define_insn_and_split patterns. (*ashl3_doubleword_mask, *ashl3_doubleword_mask_1, *3_doubleword_mask, *3_doubleword_mask_1, ix86_rotl3_doubleword, ix86_rotr3_doubleword): Adjust splitters for x86_{,64_}sh{l,r}d pattern changes. * gcc.dg/pr103431.c: New test.
[Bug tree-optimization/103435] [12 Regression] gcc/gimple-ssa-store-merging.c:879:13: runtime error: shift exponent 64 is too large for 64-bit type 'long unsigned int'
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103435 --- Comment #2 from CVS Commits --- The master branch has been updated by Jakub Jelinek : https://gcc.gnu.org/g:567d5f3d62fba2a23a9e975f7e7c7b61bb67cf24 commit r12-5557-g567d5f3d62fba2a23a9e975f7e7c7b61bb67cf24 Author: Jakub Jelinek Date: Sat Nov 27 13:00:55 2021 +0100 bswap: Fix UB in find_bswap_or_nop_finalize [PR103435] On gcc.c-torture/execute/pr103376.c in the following code we trigger UB in the compiler. n->range is 8 because it is 64-bit load and rsize is 0 because it is a bswap sequence with load and known to be 0: /* Find real size of result (highest non-zero byte). */ if (n->base_addr) for (tmpn = n->n, rsize = 0; tmpn; tmpn >>= BITS_PER_MARKER, rsize++); else rsize = n->range; The shifts then shift uint64_t by 64 bits. For this case mask is 0 and we want both *cmpxchg and *cmpnop as 0, the operation can be done as both nop and bswap and callers will prefer nop. 2021-11-27 Jakub Jelinek PR tree-optimization/103435 * gimple-ssa-store-merging.c (find_bswap_or_nop_finalize): Avoid UB if n->range - rsize == 8, just clear both *cmpnop and *cmpxchg in that case.
[Bug libstdc++/103448] unexpected tuple collapse
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103448 --- Comment #9 from Jonathan Wakely --- With class template argument deduction, T(T{}) will always make a copy of the same type, and not wrap it in a different specialization of the template. There is no bug here, as Andrew said.
[Bug ipa/103451] [12 Regression] crash at gcc/range-op.cc:1836 since r12-5531-g1b0acc4b800b589a
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103451 Martin Liška changed: What|Removed |Added Component|c |ipa Target Milestone|--- |12.0 Priority|P3 |P1 Ever confirmed|0 |1 CC||hubicka at gcc dot gnu.org, ||marxin at gcc dot gnu.org Summary|crash at|[12 Regression] crash at |gcc/range-op.cc:1836|gcc/range-op.cc:1836 since ||r12-5531-g1b0acc4b800b589a Last reconfirmed||2021-11-27 Status|UNCONFIRMED |NEW Known to fail||12.0 --- Comment #1 from Martin Liška --- Started with r12-5531-g1b0acc4b800b589a.
[Bug ipa/103449] [12 Regression] use-after-free in ipa_param_body_adjustments::prepare_debug_expressions(tree_node*) (ipa-param-manipulation.c:1283) since r12-4920-g1ece90ffa9ce63b4
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103449 Martin Liška changed: What|Removed |Added Last reconfirmed||2021-11-27 Priority|P3 |P1 Ever confirmed|0 |1 Status|UNCONFIRMED |NEW CC||jamborm at gcc dot gnu.org Summary|[12 Regression] |[12 Regression] |use-after-free in |use-after-free in |ipa_param_body_adjustments: |ipa_param_body_adjustments: |:prepare_debug_expressions( |:prepare_debug_expressions( |tree_node*) |tree_node*) |(ipa-param-manipulation.c:1 |(ipa-param-manipulation.c:1 |283)|283) since ||r12-4920-g1ece90ffa9ce63b4 Target Milestone|--- |12.0 --- Comment #1 from Martin Liška --- Started with r12-4920-g1ece90ffa9ce63b4.
[Bug rtl-optimization/103450] [12 Regression] ICE: SIGSEGV in memory_operand (recog.c:1818) with -Og -fharden-compares -fschedule-insns2 -fno-tree-dce -fno-tree-fre since r12-5536-g90cb088ece8d8cc1
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103450 Martin Liška changed: What|Removed |Added Status|UNCONFIRMED |NEW CC||lingling.kong7 at gmail dot com, ||marxin at gcc dot gnu.org Target Milestone|--- |12.0 Ever confirmed|0 |1 Last reconfirmed||2021-11-27 Priority|P3 |P1 Summary|ICE: SIGSEGV in |[12 Regression] ICE: |memory_operand |SIGSEGV in memory_operand |(recog.c:1818) with -Og |(recog.c:1818) with -Og |-fharden-compares |-fharden-compares |-fschedule-insns2 |-fschedule-insns2 |-fno-tree-dce -fno-tree-fre |-fno-tree-dce -fno-tree-fre ||since ||r12-5536-g90cb088ece8d8cc1 --- Comment #1 from Martin Liška --- Started with r12-5536-g90cb088ece8d8cc1.
[Bug bootstrap/103452] *** Configuration arm-unknown-mingw32ce not supported
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103452 Andrew Pinski changed: What|Removed |Added Resolution|--- |WONTFIX Status|UNCONFIRMED |RESOLVED Target Milestone|--- |4.8.0 --- Comment #4 from Andrew Pinski --- arm wince support was removed in GCC 4.8.0 with r0-117302 because it used the old FPA fpu and the ABI support for it was removed at the same time. I highly doubt you have a windows CE machine floating around either. Closing as won't fix. Now arm-mingw might get some support later on. Or aarch64-mingw might be a better choice really.
[Bug c++/101853] [12 Regression] g++.dg/modules/xtreme-header-5_b.C ICE
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=101853 Hans-Peter Nilsson changed: What|Removed |Added Status|UNCONFIRMED |NEW Ever confirmed|0 |1 Last reconfirmed||2021-11-27 --- Comment #9 from Hans-Peter Nilsson --- (In reply to Hans-Peter Nilsson from comment #8) > Then as above, no change up to and including 665f726b8a15 (r12-5545). Still there at caa04517e6f7 (r12-5549), then at f4ed2e3ae7d9 (r12-), the g++.dg/modules/xtreme-header-2_b.C regression is gone again. (I see this was still UNCONFIRMED, now changed to NEW.)
[Bug middle-end/77721] -Wformat-truncation not uses arg range for converted vars
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=77721 --- Comment #7 from Dmitry G. Dyachenko --- Sounds like gcc-8.0.1 PASS for me r257061 FAIL r258034 PASS r12-5546 PASS $ ~/arch-gcc/SVN/gcc_258034/bin/gcc --version gcc (GCC) 8.0.1 20180227 (experimental) [trunk revision 258034] $ ~/arch-gcc/SVN/gcc_258034/bin/gcc -O2 -S -Wall -Woverflow -Wconversion -Wpedantic -Wformat-truncation=2 -xc x.c $ cat x.c int snprintf (char*, __SIZE_TYPE__, const char*, ...); void foo(unsigned j, char *p) { if(j > 999) return; snprintf(p, 4, "%3u", j); } void bar(int j, char *p) { const unsigned k = (unsigned) j; if(k > 999) return; snprintf(p, 4, "%3u", k); }
[Bug bootstrap/103452] *** Configuration arm-unknown-mingw32ce not supported
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103452 --- Comment #3 from Andreas Schwab --- Nobody has contributed support for it. Do you want to be the first?
[Bug bootstrap/103452] *** Configuration arm-unknown-mingw32ce not supported
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103452 --- Comment #2 from cqwrteur --- Created attachment 51890 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51890&action=edit stdout logs
[Bug bootstrap/103452] *** Configuration arm-unknown-mingw32ce not supported
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103452 --- Comment #1 from cqwrteur --- Created attachment 51889 --> https://gcc.gnu.org/bugzilla/attachment.cgi?id=51889&action=edit err
[Bug bootstrap/103452] New: *** Configuration arm-unknown-mingw32ce not supported
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103452 Bug ID: 103452 Summary: *** Configuration arm-unknown-mingw32ce not supported Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: bootstrap Assignee: unassigned at gcc dot gnu.org Reporter: unlvsur at live dot com Target Milestone: --- But i did see arm mingw32ce in the gcc's config + binutils-gdb can be built without any issues. What's wrong here?
[Bug c/103451] New: crash at gcc/range-op.cc:1836
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103451 Bug ID: 103451 Summary: crash at gcc/range-op.cc:1836 Product: gcc Version: 12.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c Assignee: unassigned at gcc dot gnu.org Reporter: dcb314 at hotmail dot com Target Milestone: --- For this C code: int func_10_ptr_12; void func_10(long li_8) { long *ptr_9 = &li_8; li_8 &= *ptr_9 / 0 ?: li_8; for (;;) func_10_ptr_12 &= 4 ? *ptr_9 : 4; } void func_9_s_8() { func_10(func_9_s_8); } on recent gcc, does this: $ /home/dcb/gcc/results/bin/gcc -c -O2 bug775.c during IPA pass: inline bug775.c: At top level: bug775.c:14:1: internal compiler error: Segmentation fault 14 | } | ^ 0xdabcb9 crash_signal(int) ../../trunk.git/gcc/toplev.c:322 0x1c98f2f operator_div::wi_fold(irange&, tree_node*, generic_wide_int const&, generic_wide_int const&, generic_wide_int const&, generic_wide_int const&) const ../../trunk.git/gcc/range-op.cc:1836 The bug first seems to occur sometime between git hash 415f9ee404dc9e8a and 4a2007594cff78fb, a distance of 22 commits.
[Bug rtl-optimization/103450] New: ICE: SIGSEGV in memory_operand (recog.c:1818) with -Og -fharden-compares -fschedule-insns2 -fno-tree-dce -fno-tree-fre
ing-yes-rtl-df-extra-nobootstrap-amd64 Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 12.0.0 20211127 (experimental) (GCC)
[Bug ipa/103449] New: [12 Regression] use-after-free in ipa_param_body_adjustments::prepare_debug_expressions(tree_node*) (ipa-param-manipulation.c:1283)
0] (ipa-inline-transform.c:715) ==23072==by 0x13C08CB: inline_transform(cgraph_node*) (ipa-inline-transform.c:777) ==23072==by 0x1539F15: execute_one_ipa_transform_pass (passes.c:2290) ==23072==by 0x1539F15: execute_all_ipa_transforms(bool) (passes.c:2337) ==23072== $ x86_64-pc-linux-gnu-gcc -v Using built-in specs. COLLECT_GCC=/repo/gcc-trunk/binary-latest-amd64/bin/x86_64-pc-linux-gnu-gcc COLLECT_LTO_WRAPPER=/repo/gcc-trunk/binary-trunk-r12--20211127001619-gf4ed2e3ae7d-checking-yes-rtl-df-extra-nobootstrap-amd64/bin/../libexec/gcc/x86_64-pc-linux-gnu/12.0.0/lto-wrapper Target: x86_64-pc-linux-gnu Configured with: /repo/gcc-trunk//configure --enable-languages=c,c++ --enable-valgrind-annotations --disable-nls --enable-checking=yes,rtl,df,extra --disable-bootstrap --with-cloog --with-ppl --with-isl --build=x86_64-pc-linux-gnu --host=x86_64-pc-linux-gnu --target=x86_64-pc-linux-gnu --with-ld=/usr/bin/x86_64-pc-linux-gnu-ld --with-as=/usr/bin/x86_64-pc-linux-gnu-as --disable-libstdcxx-pch --prefix=/repo/gcc-trunk//binary-trunk-r12--20211127001619-gf4ed2e3ae7d-checking-yes-rtl-df-extra-nobootstrap-amd64 Thread model: posix Supported LTO compression algorithms: zlib zstd gcc version 12.0.0 20211127 (experimental) (GCC)
[Bug libstdc++/103445] build failure for old versions of mingw32 (not mingw-w64)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=103445 --- Comment #5 from cqwrteur --- (In reply to Jonathan Wakely from comment #4) > Sorry, I don't understand anything above. I don't care whether you're using > mingw or mingw-w64, what I asked is how old it is. Libstdc++ expects a > recent version, and I'm not surprised if it doesn't work with older > versions. It's just not worth the effort to support very old version. > > Maybe we can add some more configure checks for _wstat64 and ftruncate64 and > skip all the filesystem code if building against an old CRT. I do not know how old it is. it comes from dev c++ 4.9.9.2 (dev c++ is a dead project) which uses gcc 3.4.2. The issue I encountered is that mingw-w64 does not run properly sometimes for certain reasons on old version of windows. "Maybe we can add some more configure checks for _wstat64 and ftruncate64 and skip all the filesystem code if building against an old CRT." Yeah. Sounds good. But I think support that version of crt from dev c++ has more issues than just this. I think just better just add a configure to skip filesystem code manually. That would trivialize a lot of things, rather than wasting time supporting old versions of crt.