From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 1493 invoked by alias); 6 Jun 2014 11:54:26 -0000 Mailing-List: contact gcc-bugs-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-bugs-owner@gcc.gnu.org Received: (qmail 1420 invoked by uid 55); 6 Jun 2014 11:54:22 -0000 From: "rguenther at suse dot de" To: gcc-bugs@gcc.gnu.org Subject: [Bug middle-end/56888] memcpy implementation optimized as a call to memcpy Date: Fri, 06 Jun 2014 11:54:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: middle-end X-Bugzilla-Version: 4.8.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: rguenther at suse dot de X-Bugzilla-Status: NEW X-Bugzilla-Priority: P3 X-Bugzilla-Assigned-To: unassigned at gcc dot gnu.org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 7bit X-Bugzilla-URL: http://gcc.gnu.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2014-06/txt/msg00468.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888 --- Comment #32 from rguenther at suse dot de --- On Fri, 6 Jun 2014, terra at gnome dot org wrote: > https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56888 > > M Welinder changed: > > What |Removed |Added > ---------------------------------------------------------------------------- > CC| |terra at gnome dot org > > --- Comment #31 from M Welinder --- > Extra complication: the C library's memcpy may change errno to any non-zero > value if it so desires. (C99 section 7.5 #5.) That's news to me. > That means that raw calls to memcpy (and friends) cannot be generated anywhere > where the compiler is unable to prove that the value of errno isn't used. That's almost impossible. > Extra code to store and restore errno must be emitted otherwise. That is not possible. Note that the compiler emits calls to memcpy for struct copies anyway, so if there is a problem it is a long-standing one.