public inbox for gcc@gcc.gnu.org
 help / color / mirror / Atom feed
From: Michael Matz <matz@suse.de>
To: Paolo Bonzini <bonzini@gnu.org>
Cc: Richard Guenther <richard.guenther@gmail.com>,
	Ian Lance Taylor <iant@google.com>,
	Nathan Boley <npboley@gmail.com>,
	gcc@gcc.gnu.org
Subject: Re: Possible Bug
Date: Mon, 28 Mar 2011 13:37:00 -0000	[thread overview]
Message-ID: <Pine.LNX.4.64.1103281422310.19760@wotan.suse.de> (raw)
In-Reply-To: <4D9072B3.708@gnu.org>

Hi,

On Mon, 28 Mar 2011, Paolo Bonzini wrote:

> > At expansion time we have the following for the call argument:
> >
> >   <mem_ref 0x7ffff7ff9118
> >      type<record_type 0x7ffff5b295e8 GENOME_LOC_TYPE_2 packed type_0 BLK
> >          size<integer_cst 0x7ffff5b256b8 constant 48>
> >          unit size<integer_cst 0x7ffff5b25708 constant 6>
> >          align 8 symtab 0 alias set -1 canonical type 0x7ffff5b29540
> >
> > which looks ok to me.
> 
> It already isn't, why is the alignment 8 if __alignof__ 
> (GENOME_LOC_TYPE_2) is 1?

The aligns are printed in bits.  It really is okay, as is the MEM.

> The other question is a layout question, should the packed attribute 
> affect the removal of padding from the last bitfield element?

A hypothetical question because we can't change this behaviour after about 
15 years.  Even if we could I'd argue that the current behaviour is 
correct (because we lack another attribute that would say 'and please also 
pack arrays of this type tightly', which then would finally imply that 
final padding is also removed, and hence we'd then hit this very same bug 
with testcases using _that_ attribute instead of packed).

As some digging shows, already GCC 1.35 had effectively the same code.  
As soon as parameters are passed in registers GCC loads the parts fitting 
into registers as full words.  We could simply sorry() for these cases, as 
they never worked correctly.  Though I suppose that's quite unforgiving, 
as most of the time (struct in question not passing page border) it works 
fine.


Ciao,
Michael.

  parent reply	other threads:[~2011-03-28 12:27 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-03-26 20:28 Nathan Boley
2011-03-27  7:38 ` Ian Lance Taylor
2011-03-28 11:06   ` Paolo Bonzini
2011-03-28 11:28     ` Richard Guenther
2011-03-28 11:47       ` Paolo Bonzini
2011-03-28 12:14         ` Richard Guenther
2011-03-28 13:37         ` Michael Matz [this message]
2011-03-28 13:54           ` Paolo Bonzini
2011-03-28 14:37             ` Richard Guenther
2011-03-29 16:03               ` Nathan Boley
  -- strict thread matches above, loose matches on Subject: below --
2003-01-31  0:33 possible bug Andrew Morton
2003-01-31  0:36 ` Jan Hubicka
2003-01-31  0:56   ` Andrew Morton
2003-01-31  8:08   ` Alexandre Oliva
2003-01-31 10:48     ` Fergus Henderson
1999-07-25 17:52 Manush Dodunekov
1999-07-26 10:57 ` Alexandre Oliva
1999-07-27  3:27   ` Manush Dodunekov
1999-07-27  3:37     ` Alexandre Oliva
1999-07-31 23:33       ` Alexandre Oliva
1999-07-31 23:33     ` Manush Dodunekov
1999-07-31 23:33   ` Alexandre Oliva
1999-07-31 23:33 ` Manush Dodunekov
1997-12-12 15:46 Possible Bug Mike Sullivan

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=Pine.LNX.4.64.1103281422310.19760@wotan.suse.de \
    --to=matz@suse.de \
    --cc=bonzini@gnu.org \
    --cc=gcc@gcc.gnu.org \
    --cc=iant@google.com \
    --cc=npboley@gmail.com \
    --cc=richard.guenther@gmail.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).