public inbox for gcc-bugs@sourceware.org
help / color / mirror / Atom feed
From: "krebbel at gcc dot gnu.org" <gcc-bugzilla@gcc.gnu.org>
To: gcc-bugs@gcc.gnu.org
Subject: [Bug middle-end/50325] [4.7 Regression] 76 new fails with rev. 177691
Date: Wed, 14 Sep 2011 07:38:00 -0000	[thread overview]
Message-ID: <bug-50325-4-hBSHxlz7Sp@http.gcc.gnu.org/bugzilla/> (raw)
In-Reply-To: <bug-50325-4@http.gcc.gnu.org/bugzilla/>

http://gcc.gnu.org/bugzilla/show_bug.cgi?id=50325

--- Comment #4 from Andreas Krebbel <krebbel at gcc dot gnu.org> 2011-09-14 07:20:14 UTC ---
I've looked into the 22_locale/money_get/get/char/13.cc failure.

The problem is a miscompilation of locale-inst.cc in libstdc++.

Source:

template<typename _CharT, typename _InIter>
    _InIter
    money_get<_CharT, _InIter>::
    do_get(iter_type __beg, iter_type __end, bool __intl, ios_base& __io,
       ios_base::iostate& __err, long double& __units) const
    {
      string __str;
      __beg = __intl ? _M_extract<true>(__beg, __end, __io, __err, __str)
                 : _M_extract<false>(__beg, __end, __io, __err, __str);
      std::__convert_to_v(__str.c_str(), __units, __err, _S_get_c_locale());
      return __beg;
    }

The result of _M_extract is copied into the return ptr field of the
function.  This assignment copies 12 bytes:

MEM[(struct iter_type *)&__beg] = MEM[(struct iter_type *)&D.23511];

expand_assignement expands this using store_field. However
store_bit_field_1 does not seem to handle BLKmode copies correctly for
byte big endian targets if the source cannot exactly be covered by
word mode operands. It calls itself recursively for the last chunk with:

store_bit_field_1 (str_rtx=0x3fff6528a38, bitsize=32, bitnum=64,
bitregion_start=0, bitregion_end=0, 
    fieldmode=DImode, value=0x3fff6528ab0, fallback_p=true)

with value being (subreg:DI (reg:TI 70) 8)

But copying 4 bytes from that value on a big endian target results in
a src value of (subreg:DI (reg:TI 70) 12) so the wrong word is being
copied here.


  parent reply	other threads:[~2011-09-14  7:21 UTC|newest]

Thread overview: 43+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-09-08 10:32 [Bug middle-end/50325] New: " krebbel at gcc dot gnu.org
2011-09-08 10:51 ` [Bug middle-end/50325] " dominiq at lps dot ens.fr
2011-09-08 12:10 ` [Bug middle-end/50325] [4.7 Regression] " rguenth at gcc dot gnu.org
2011-09-08 12:35 ` rguenth at gcc dot gnu.org
2011-09-14  7:38 ` krebbel at gcc dot gnu.org [this message]
2011-09-14  8:50 ` krebbel at gcc dot gnu.org
2011-09-14 13:33 ` dominiq at lps dot ens.fr
2011-09-14 18:04 ` dominiq at lps dot ens.fr
2011-09-14 18:29 ` dominiq at lps dot ens.fr
2011-09-16 14:46 ` dominiq at lps dot ens.fr
2011-10-10 12:36 ` rguenth at gcc dot gnu.org
2011-11-16  9:50 ` krebbel at gcc dot gnu.org
2011-11-16 10:22 ` krebbel at gcc dot gnu.org
2011-11-17 15:19 ` dje at gcc dot gnu.org
2011-11-17 15:21 ` dje at gcc dot gnu.org
2011-11-17 15:53 ` krebbel at gcc dot gnu.org
2011-11-17 16:38 ` dominiq at lps dot ens.fr
2011-11-19 16:08 ` iains at gcc dot gnu.org
2011-11-19 19:29 ` ebotcazou at gcc dot gnu.org
2011-11-20 12:32 ` rsandifo at gcc dot gnu.org
2011-11-21  0:55 ` oleg.endo@t-online.de
2011-11-21  8:42 ` iains at gcc dot gnu.org
2011-11-21 22:03 ` davem at gcc dot gnu.org
2011-11-22  9:49 ` krebbel at gcc dot gnu.org
2011-12-01  9:22 ` rguenther at suse dot de
2011-12-01 10:11 ` iains at gcc dot gnu.org
2011-12-01 10:26 ` iains at gcc dot gnu.org
2011-12-01 11:08 ` iains at gcc dot gnu.org
2011-12-01 11:26 ` rguenther at suse dot de
2012-01-08 13:00 ` dominiq at lps dot ens.fr
2012-01-08 17:26 ` ebotcazou at gcc dot gnu.org
2012-01-15 13:40 ` dominiq at lps dot ens.fr
2012-01-16 17:06 ` dje at gcc dot gnu.org
2012-01-16 21:32 ` rsandifo at gcc dot gnu.org
2012-01-16 22:05 ` ebotcazou at gcc dot gnu.org
2012-01-16 22:21 ` jakub at gcc dot gnu.org
2012-01-16 23:06 ` ebotcazou at gcc dot gnu.org
2012-01-17 11:36 ` jakub at gcc dot gnu.org
2012-01-17 12:09 ` rsandifo at gcc dot gnu.org
2012-01-17 22:10 ` rsandifo at gcc dot gnu.org
2012-01-17 23:46 ` rsandifo at gcc dot gnu.org
2012-01-23 10:12 ` amodra at gmail dot com
2020-03-13  9:10 ` marxin at gcc dot gnu.org

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=bug-50325-4-hBSHxlz7Sp@http.gcc.gnu.org/bugzilla/ \
    --to=gcc-bugzilla@gcc.gnu.org \
    --cc=gcc-bugs@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).