From: Florian Weimer <fweimer@redhat.com>
To: Bernd Schmidt <bschmidt@redhat.com>,
Paul Eggert <eggert@cs.ucla.edu>,
Mark Wielaard <mark@klomp.org>
Cc: Joseph Myers <joseph@codesourcery.com>, gcc-patches@gcc.gnu.org
Subject: Re: Make max_align_t respect _Float128 [version 2]
Date: Thu, 08 Sep 2016 12:34:00 -0000 [thread overview]
Message-ID: <ee518f88-d98d-6618-dc23-fcd4c034e91a@redhat.com> (raw)
In-Reply-To: <f64c1c8c-cd39-b145-c102-7c9c502093bc@redhat.com>
On 09/08/2016 02:26 PM, Bernd Schmidt wrote:
> On 09/08/2016 01:21 AM, Paul Eggert wrote:
>
>> Sure, attached. On Fedora 24 x86-64 (GCC 6.1.1 20160621, valgrind
>> 3.11.0), when I compile with "gcc -O2 flexouch.c" and run with "valgrind
>> ./a.out", valgrind complains "Invalid read of size 2". This is because
>> GCC compiles "p->d[0] == 2 && p->d[1] == 3" into "cmpw $770, 8(%rax);
>> sete %al", which loads the uninitialized byte p->d[1] simultaneously
>> with the initialized byte p->d[0].
>
> Interesting. That optimization doesn't really depend on d being a
> flexible array, so you can also reproduce a (different) valgrind warning
> with the following:
>
> #include <stddef.h>
> #include <stdlib.h>
>
> struct s { int x; char d[2]; };
>
> __attribute__((noinline,noclone)) void foo (struct s *p)
> {
> p->d[0] = 1;
> }
>
> int
> main (void)
> {
> struct s *p = malloc (sizeof *p);
> foo (p);
> return p->d[0] == 2 && p->d[1] == 3;
> }
Very interesting. So the ASan failure reported for gnulib fts and this
valgrind issue have separate causes (ASan does not care about undefined
memory).
Thanks,
Florian
next prev parent reply other threads:[~2016-09-08 12:30 UTC|newest]
Thread overview: 51+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-08-26 20:55 Make max_align_t respect _Float128 Joseph Myers
2016-08-26 21:10 ` Marc Glisse
2016-08-26 21:30 ` Joseph Myers
2016-08-26 21:45 ` Florian Weimer
2016-08-26 21:57 ` Paul Eggert
2016-08-26 22:25 ` Joseph Myers
2016-08-26 21:51 ` Paul Eggert
2016-08-29 13:29 ` Marek Polacek
2016-08-29 15:40 ` Joseph Myers
2016-09-01 14:18 ` Ping " Joseph Myers
2016-09-05 17:07 ` Make max_align_t respect _Float128 [version 2] Joseph Myers
2016-09-06 9:06 ` Richard Biener
2016-09-06 11:26 ` Joseph Myers
2016-09-06 9:19 ` Florian Weimer
2016-09-06 9:24 ` Richard Biener
2016-09-07 7:45 ` Florian Weimer
2016-09-07 17:53 ` Joseph Myers
2016-09-08 9:35 ` Florian Weimer
2016-09-06 11:40 ` Joseph Myers
2016-09-06 15:06 ` Florian Weimer
2016-09-06 15:20 ` Joseph Myers
2016-09-06 15:59 ` Paul Eggert
2016-09-06 20:47 ` Joseph Myers
2016-09-06 21:41 ` Paul Eggert
2016-09-07 9:22 ` Florian Weimer
2016-09-07 11:52 ` Mark Wielaard
2016-09-08 1:58 ` Paul Eggert
2016-09-08 11:58 ` Mark Wielaard
2016-09-08 12:22 ` Florian Weimer
2016-09-08 14:59 ` Paul Eggert
2016-09-08 12:30 ` Bernd Schmidt
2016-09-08 12:34 ` Florian Weimer [this message]
2016-09-07 9:15 ` Florian Weimer
2016-09-06 21:03 ` Jason Merrill
2016-09-06 21:18 ` Joseph Myers
2016-09-06 21:53 ` Jason Merrill
2016-09-06 21:56 ` Joseph Myers
2016-09-06 12:06 ` Bernd Schmidt
2016-09-06 14:59 ` Florian Weimer
2016-09-12 18:02 ` Make max_align_t respect _Float128 [version 3] Joseph Myers
2016-09-19 16:08 ` Ping " Joseph Myers
2016-09-19 17:11 ` Paul Eggert
2016-09-26 16:35 ` Jeff Law
2016-09-06 18:14 Make max_align_t respect _Float128 [version 2] Bernd Edlinger
2016-09-06 20:58 ` Joseph Myers
2016-09-07 19:50 Bernd Edlinger
2016-09-07 20:06 ` Joseph Myers
2016-09-07 21:00 ` Bernd Edlinger
2016-09-07 21:48 ` Joseph Myers
2016-09-08 10:50 ` Florian Weimer
2016-09-09 17:24 ` Bernd Edlinger
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=ee518f88-d98d-6618-dc23-fcd4c034e91a@redhat.com \
--to=fweimer@redhat.com \
--cc=bschmidt@redhat.com \
--cc=eggert@cs.ucla.edu \
--cc=gcc-patches@gcc.gnu.org \
--cc=joseph@codesourcery.com \
--cc=mark@klomp.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).