Launchpad has imported 17 comments from the remote bug at https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69715.
If you reply to an imported comment from within Launchpad, your comment will be sent to the remote bug automatically. Read more about Launchpad's inter-bugtracker facilities at https://documentation.ubuntu.com/launchpad/user/reference/bugs/multi-project-bugs/about-multi-project-bugs/#bugs-in-external-trackers. ------------------------------------------------------------------------ On 2016-02-08T01:21:31+00:00 Kip Warner wrote: While building streflop via my PPA (personal package archive) I managed to actually make GCC crash. I've attached two logs. One is the full build log which is very large (11 MB), and the other is an excerpt of just the dump itself. Note that this only seems to happen when my package is built for i386 and not amd64. Here is the PPA in case it is of use: https://launchpad.net/~kip/+archive/ubuntu/streflop Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/3 ------------------------------------------------------------------------ On 2016-02-08T01:22:24+00:00 Kip Warner wrote: Created attachment 37623 Complete build log (very big, 11 MB decompressed). Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/4 ------------------------------------------------------------------------ On 2016-02-08T01:23:31+00:00 Kip Warner wrote: Created attachment 37624 Summary build log. Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/5 ------------------------------------------------------------------------ On 2016-02-08T07:50:51+00:00 Trippels wrote: All supported gcc versions ICE. markus@x4 tmp % cat cra.ii namespace streflop { template <int> struct A { operator long double() const; }; namespace SoftFloat { typedef struct { long long low; int high; } floatx80; floatx80 fn1(int); } using namespace SoftFloat; template <> A<32>::operator long double() const { long double a; *reinterpret_cast<floatx80 *>(&a) = fn1(0); return a; } } markus@x4 tmp % /var/tmp/gcc_test/usr/local/bin/g++ -c -m32 -O3 cra.ii cra.ii: In member function ‘streflop::A<<anonymous> >::operator long double() const [with int <anonymous> = 32]’: cra.ii:13:45: internal compiler error: in store_bit_field_1, at expmed.c:839 *reinterpret_cast<floatx80 *>(&a) = fn1(0); ^ 0x9d7d8e store_bit_field_1 ../../gcc/gcc/expmed.c:839 0x9d7e8c store_bit_field(rtx_def*, unsigned long, unsigned long, unsigned long, unsigned long, machine_mode, rtx_def*, bool) ../../gcc/gcc/expmed.c:1111 0x9f906c store_field ../../gcc/gcc/expr.c:6769 0x9f4b41 expand_assignment(tree_node*, tree_node*, bool) ../../gcc/gcc/expr.c:5021 0x8e7a2a expand_call_stmt ../../gcc/gcc/cfgexpand.c:2646 0x8e7a2a expand_gimple_stmt_1 ../../gcc/gcc/cfgexpand.c:3536 0x8e7a2a expand_gimple_stmt ../../gcc/gcc/cfgexpand.c:3702 0x8eaa96 expand_gimple_basic_block ../../gcc/gcc/cfgexpand.c:5708 0x8ef8d6 execute ../../gcc/gcc/cfgexpand.c:6323 Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/6 ------------------------------------------------------------------------ On 2016-02-08T08:10:26+00:00 Kip Warner wrote: Hey Markus. I'm able to replicate your minimal with... $ g++ --version g++ (Ubuntu 5.2.1-22ubuntu2) 5.2.1 20151010 Well I'll be damned. It looks as though we've actually managed to find a bona fide bug. Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/7 ------------------------------------------------------------------------ On 2016-02-08T09:55:30+00:00 Jakub-gcc wrote: struct __attribute__((may_alias)) S { long long low; int high; }; struct S foo (void); long double bar (void) { long double a; *(struct S *)&a = foo (); return a; } C (and more simplified) testcase. Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/8 ------------------------------------------------------------------------ On 2016-02-08T12:32:34+00:00 Jakub-gcc wrote: Most likely started with r192641, at least that version ICEs and r192632 does not. The problem is that as there is just a MEM_REF and the VAR_DECL is mentioned has XFmode (that has no corresponding MODE_INT mode with the same size), the var is not addressable, but the RTL expansion code isn't prepared to handle such cases. THat said, I'm really surprised by what already ccp1 makes out of this (the pass which does No longer having address taken: a ): MEM[(struct S * {ref-all})&a] = foo (); _4 = a_6(D); I've always thought that SSA_NAME_IS_DEFAULT_DEF for non-PARM_DECLs represent uninitialized value... Note that happens even say int low; int high; and double instead of long double, but in that case there is no ICE and it happens to work. I'm just surprised it does. Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/9 ------------------------------------------------------------------------ On 2016-02-08T12:46:56+00:00 Rguenth wrote: Fix for the invalid GIMPLE (we can enhance this but anyting other than plain DECLs are mishandled right now): Index: gcc/tree-ssa.c =================================================================== --- gcc/tree-ssa.c (revision 233211) +++ gcc/tree-ssa.c (working copy) @@ -1436,7 +1443,8 @@ execute_update_addresses_taken (void) tree lhs = gimple_get_lhs (stmt); if (lhs && TREE_CODE (lhs) != SSA_NAME - && non_rewritable_lvalue_p (lhs)) + && ((code == GIMPLE_CALL && ! DECL_P (lhs)) + || non_rewritable_lvalue_p (lhs))) { decl = get_base_address (lhs); if (DECL_P (decl)) Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/10 ------------------------------------------------------------------------ On 2016-02-09T08:35:52+00:00 Rguenth wrote: Fixed on trunk sofar. Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/11 ------------------------------------------------------------------------ On 2016-02-09T08:35:54+00:00 Rguenth wrote: Author: rguenth Date: Tue Feb 9 08:35:22 2016 New Revision: 233239 URL: https://gcc.gnu.org/viewcvs?rev=233239&root=gcc&view=rev Log: 2016-02-09 Richard Biener <[email protected]> PR tree-optimization/69715 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl LHS on calls as non-rewritable. * gcc.dg/torture/pr69715.c: New testcase. Added: trunk/gcc/testsuite/gcc.dg/torture/pr69715.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa.c Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/12 ------------------------------------------------------------------------ On 2016-02-11T13:27:47+00:00 Rguenth wrote: Author: rguenth Date: Thu Feb 11 13:27:14 2016 New Revision: 233341 URL: https://gcc.gnu.org/viewcvs?rev=233341&root=gcc&view=rev Log: 2016-02-11 Richard Biener <[email protected]> Backport from mainline 2016-01-18 Richard Biener <[email protected]> PR middle-end/69308 * gimple.c (gimple_could_trap_p_1): Handle GIMPLE_COND. 2016-02-01 Richard Biener <[email protected]> PR tree-optimization/69574 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead of asserting return chrec_dont_know. * gcc.dg/torture/pr69574.c: New testcase. 2016-02-01 Richard Biener <[email protected]> PR tree-optimization/69579 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do not propagate through abnormal PHI results. * gcc.dg/setjmp-6.c: New testcase. 2016-02-02 Richard Biener <[email protected]> PR tree-optimization/69606 * tree-ssa-math-opts.c (bswap_replace): Clear flow sensitive info on the result before moving a stmt. * gcc.dg/torture/pr69606.c: New testcase. 2016-02-09 Richard Biener <[email protected]> PR tree-optimization/69715 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl LHS on calls as non-rewritable. * gcc.dg/torture/pr69715.c: New testcase. Added: branches/gcc-5-branch/gcc/testsuite/gcc.dg/setjmp-6.c branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr69574.c branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr69606.c branches/gcc-5-branch/gcc/testsuite/gcc.dg/torture/pr69715.c Modified: branches/gcc-5-branch/gcc/ChangeLog branches/gcc-5-branch/gcc/gimple.c branches/gcc-5-branch/gcc/testsuite/ChangeLog branches/gcc-5-branch/gcc/tree-chrec.c branches/gcc-5-branch/gcc/tree-ssa-loop-ivcanon.c branches/gcc-5-branch/gcc/tree-ssa-math-opts.c branches/gcc-5-branch/gcc/tree-ssa.c Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/13 ------------------------------------------------------------------------ On 2016-02-11T18:32:09+00:00 Kip Warner wrote: Nice work, Richard. Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/14 ------------------------------------------------------------------------ On 2016-02-12T08:33:58+00:00 Rguenth wrote: Re-open for the 4.9 branch backport that is still pending. Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/15 ------------------------------------------------------------------------ On 2016-02-12T14:05:01+00:00 Rguenth wrote: Author: rguenth Date: Fri Feb 12 14:04:29 2016 New Revision: 233378 URL: https://gcc.gnu.org/viewcvs?rev=233378&root=gcc&view=rev Log: 2016-02-12 Richard Biener <[email protected]> Backport from mainline 2016-02-09 Richard Biener <[email protected]> PR tree-optimization/69715 * tree-ssa.c (execute_update_addresses_taken): Mark non-decl LHS on calls as non-rewritable. * gcc.dg/torture/pr69715.c: New testcase. 2016-02-01 Richard Biener <[email protected]> PR tree-optimization/69579 * tree-ssa-loop-ivcanon.c (propagate_constants_for_unrolling): Do not propagate through abnormal PHI results. * gcc.dg/setjmp-6.c: New testcase. 2016-02-01 Richard Biener <[email protected]> PR tree-optimization/69574 * tree-chrec.c (hide_evolution_in_other_loops_than_loop): Instead of asserting return chrec_dont_know. * gcc.dg/torture/pr69574.c: New testcase. Added: branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/setjmp-6.c branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr69574.c branches/gcc-4_9-branch/gcc/testsuite/gcc.dg/torture/pr69715.c Modified: branches/gcc-4_9-branch/gcc/ChangeLog branches/gcc-4_9-branch/gcc/testsuite/ChangeLog branches/gcc-4_9-branch/gcc/tree-chrec.c branches/gcc-4_9-branch/gcc/tree-ssa-loop-ivcanon.c branches/gcc-4_9-branch/gcc/tree-ssa.c Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/16 ------------------------------------------------------------------------ On 2016-02-12T14:06:51+00:00 Rguenth wrote: Fixed. Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/17 ------------------------------------------------------------------------ On 2016-02-22T06:01:19+00:00 Kip Warner wrote: Thank you for your hard work, Richard. It's very appreciated. I can't imagine what it would be like to debug GCC. Which stable version of GCC should I look for that will be the newest to carry your fix? I'm guessing > 5.3 or 4.9.(>4)? Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/18 ------------------------------------------------------------------------ On 2016-02-22T09:06:56+00:00 Rguenther-suse wrote: On Mon, 22 Feb 2016, kip at thevertigo dot com wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=69715 > > --- Comment #15 from Kip Warner <kip at thevertigo dot com> --- > Thank you for your hard work, Richard. It's very appreciated. I can't imagine > what it would be like to debug GCC. > > Which stable version of GCC should I look for that will be the newest to carry > your fix? I'm guessing > 5.3 or 4.9.(>4)? Yes, the next that will be released, thus 5.4 or 4.9.4. Reply at: https://bugs.launchpad.net/ubuntu/+bug/776892/comments/19 ** Changed in: gcc Status: Unknown => Fix Released ** Changed in: gcc Importance: Unknown => Medium -- You received this bug notification because you are a member of Ubuntu Bugs, which is subscribed to Ubuntu. https://bugs.launchpad.net/bugs/776892 Title: [needs-packaging] streflop needs packaging To manage notifications about this bug go to: https://bugs.launchpad.net/gcc/+bug/776892/+subscriptions -- ubuntu-bugs mailing list [email protected] https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs
