public inbox for gcc-prs@sourceware.org
help / color / mirror / Atom feed
From: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
To: nobody@gcc.gnu.org
Cc: gcc-prs@gcc.gnu.org,
Subject: RE: c++/8543: bus error with 2 word alignments
Date: Mon, 25 Nov 2002 14:55:00 -0000 [thread overview]
Message-ID: <20021119143610.11011.qmail@sources.redhat.com> (raw)
The following reply was made to PR c++/8543; it has been noted by GNATS.
From: Wolfgang Bangerth <bangerth@ticam.utexas.edu>
To: gcc-gnats@gcc.gnu.org
Cc:
Subject: RE: c++/8543: bus error with 2 word alignments
Date: Tue, 19 Nov 2002 08:38:31 -0600 (CST)
---------- Forwarded message ----------
Date: Tue, 19 Nov 2002 09:35:42 +0100
From: Massimo Ravasi <massimo.ravasi@epfl.ch>
To: bangerth@dealii.org
Subject: RE: c++/8543: bus error with 2 word alignments
> -----Original Message-----
> From: bangerth@dealii.org [mailto:bangerth@dealii.org]
> Sent: Monday, 18 November 2002 19:12
> To: gcc-bugs@gcc.gnu.org; gcc-prs@gcc.gnu.org; ravasi;
> nobody@gcc.gnu.org
> Subject: Re: c++/8543: bus error with 2 word alignments
>
>
> Synopsis: bus error with 2 word alignments
>
> State-Changed-From-To: open->analyzed
> State-Changed-By: bangerth
> State-Changed-When: Mon Nov 18 10:11:12 2002
> State-Changed-Why:
> I can confirm this. However, from my limited understanding,
> what you do is not legal. You try something like
> long long i;
> long long *p = (long long *)((char*)&i + 4);
> *p = 0;
> As far as I can tell, trying to play games with pointers
> and not obeying to the alignment rules of the types they
> point to is invoking undefined behavior, and a bus error
> is undefined behavior.
>
> That you get varying results with various flags and other
> parts of code is to be expected then (after all, a working
> program is a valid interpretation of "undefined behavior").
Thank you for you answer,
my problem is that I have to deal with long long data which are not
guaranteed to be aligned at a 8-byte aligned (but that are guaranteed to
be aligned at a 4-byte address... At least. It's an array of bytes where
data are stored in a proprietary format)
My doubt was if this had to be considered a compiler bug or not, given
the non deterministic behavior of the compiled code in the different
cases.
In any case, comparing long long type to double type, both of them being
8 byte long, I think that an option for long longs like the following
one for doubles could be useful in some cases... At least in mine ;-)
-munaligned-doubles
Assume that doubles have 8 byte alignment. This is the
default.
With -munaligned-doubles, GCC assumes that doubles have
8 byte alignment only if they are contained in another
type, or if they have an absolute address. Otherwise,
it assumes they have 4 byte alignment. Specifying this
option avoids some rare compatibility problems with code
generated by other compilers. It is not the default
because it results in a performance loss, especially for
floating point code.
By the way, is there a reason why such an option is available for SPARC
architectures only? That is, what kind of behavior should I expect, or
shouldn't I expect, when facing the same problem on another
architecture?
Bye,
Massimo
next reply other threads:[~2002-11-19 14:36 UTC|newest]
Thread overview: 6+ messages / expand[flat|nested] mbox.gz Atom feed top
2002-11-25 14:55 Wolfgang Bangerth [this message]
-- strict thread matches above, loose matches on Subject: below --
2003-01-23 15:05 nathan
2002-11-25 15:46 Wolfgang Bangerth
2002-11-25 15:36 Wolfgang Bangerth
2002-11-23 0:30 bangerth
2002-11-19 13:36 massimo.ravasi
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=20021119143610.11011.qmail@sources.redhat.com \
--to=bangerth@ticam.utexas.edu \
--cc=gcc-prs@gcc.gnu.org \
--cc=nobody@gcc.gnu.org \
/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).