From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25796 invoked by alias); 4 Dec 2002 22:31:58 -0000 Mailing-List: contact gcc-prs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Archive: List-Post: List-Help: Sender: gcc-prs-owner@gcc.gnu.org Received: (qmail 25768 invoked by uid 61); 4 Dec 2002 22:31:58 -0000 Date: Wed, 04 Dec 2002 14:31:00 -0000 Message-ID: <20021204223158.25767.qmail@sources.redhat.com> To: duchier@ps.uni-sb.de, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org From: bangerth@dealii.org Reply-To: bangerth@dealii.org, duchier@ps.uni-sb.de, gcc-bugs@gcc.gnu.org, gcc-prs@gcc.gnu.org, nobody@gcc.gnu.org, gcc-gnats@gcc.gnu.org Subject: Re: optimization/8634: [3.2/3.3 regression] incorrect code for inlining of memcpy under -O2 X-SW-Source: 2002-12/txt/msg00251.txt.bz2 List-Id: Old Synopsis: incorrect inlining of memcpy under -O2 New Synopsis: [3.2/3.3 regression] incorrect code for inlining of memcpy under -O2 State-Changed-From-To: open->analyzed State-Changed-By: bangerth State-Changed-When: Wed Dec 4 14:31:57 2002 State-Changed-Why: Confirmed. This program ---------------------------- #include #include int main() { char* buffer = new char[8]; const char head[8] = { 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H' }; memcpy(buffer,head,8); for(int i=0;i<8;i++) printf ("[%u] = %c, %c\n", i, head[i], buffer[i]); return 0; } -------------------------------- yields with 3.2.2pre, 3.3pre, and 2.95 respectively: tmp/g> /home/bangerth/bin/gcc-3.2.2-pre/bin/c++ -O2 bug.cc && ./a.out [0] = A, A [1] = B, [2] = C, [3] = D, [4] = E, E [5] = F, F [6] = G, G [7] = H, H tmp/g> /home/bangerth/bin/gcc-3.3-pre/bin/c++ -O2 bug.cc && ./a.out [0] = A, A [1] = B, [2] = C, [3] = D, [4] = E, E [5] = F, F [6] = G, G [7] = H, H tmp/g> c++ -O2 bug.cc && ./a.out [0] = A, A [1] = B, B [2] = C, C [3] = D, D [4] = E, E [5] = F, F [6] = G, G [7] = H, H That seems like a regression. http://gcc.gnu.org/cgi-bin/gnatsweb.pl?cmd=view%20audit-trail&database=gcc&pr=8634