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

Reply via email to