From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 122983 invoked by alias); 21 Mar 2015 05:59:10 -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 122960 invoked by uid 48); 21 Mar 2015 05:59:07 -0000 From: "hubicka at gcc dot gnu.org" To: gcc-bugs@gcc.gnu.org Subject: [Bug ipa/65502] New: pure-const should play well with clobbers. Date: Sat, 21 Mar 2015 10:47:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: ipa X-Bugzilla-Version: 5.0 X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: hubicka at gcc dot gnu.org X-Bugzilla-Status: UNCONFIRMED 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: bug_id short_desc product version bug_status bug_severity priority component assigned_to reporter Message-ID: 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: 2015-03/txt/msg02195.txt.bz2 https://gcc.gnu.org/bugzilla/show_bug.cgi?id=65502 Bug ID: 65502 Summary: pure-const should play well with clobbers. Product: gcc Version: 5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: ipa Assignee: unassigned at gcc dot gnu.org Reporter: hubicka at gcc dot gnu.org I just noticed that C++ destructors are not conisdered const/pure: local analysis of Smarts::IterateScheduler::~IterateScheduler() scanning: MEM[(struct &)this_2(D)] ={v} {CLOBBER}; Indirect ref write is not const/pure scanning: return; Smarts::IterateScheduler::~IterateScheduler() (struct IterateScheduler * const this) { : MEM[(struct &)this_2(D)] ={v} {CLOBBER}; return; } This is of course wrong, empty function is const. One issue however is that we want to preserve CLOBBER when inlining, so during early passes we may want to keep clobbers nonpure.