http://gcc.gnu.org/bugzilla/show_bug.cgi?id=60765 Bug ID: 60765 Summary: Function attributes ignored for pointer-to-member-function parameters Product: gcc Version: 4.9.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: c++ Assignee: unassigned at gcc dot gnu.org Reporter: patrick at parcs dot ath.cx $ cat this.cc struct Foo; void foo (int& (Foo::*) () __attribute__ ((returns_nonnull))); $ g++ this.cc -c this.cc:4:55: warning: ‘returns_nonnull’ attribute directive ignored [-Wattributes] foo (int& (Foo::*) () __attribute__ ((returns_nonnull))); ^ >From gcc-bugs-return-448342-listarch-gcc-bugs=gcc.gnu.org@gcc.gnu.org Fri Apr 04 23:12:53 2014 Return-Path: Delivered-To: listarch-gcc-bugs@gcc.gnu.org Received: (qmail 11797 invoked by alias); 4 Apr 2014 23:12:52 -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 Delivered-To: mailing list gcc-bugs@gcc.gnu.org Received: (qmail 11765 invoked by uid 48); 4 Apr 2014 23:12:48 -0000 From: "mirzayanovmr at gmail dot com" To: gcc-bugs@gcc.gnu.org Subject: [Bug tree-optimization/60766] New: Wrong optimization with -O2 Date: Fri, 04 Apr 2014 23:12:00 -0000 X-Bugzilla-Reason: CC X-Bugzilla-Type: new X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: gcc X-Bugzilla-Component: tree-optimization X-Bugzilla-Version: 4.8.2 X-Bugzilla-Keywords: X-Bugzilla-Severity: major X-Bugzilla-Who: mirzayanovmr at gmail dot com 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 attachments.created 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: 2014-04/txt/msg00362.txt.bz2 Content-length: 986 http://gcc.gnu.org/bugzilla/show_bug.cgi?id`766 Bug ID: 60766 Summary: Wrong optimization with -O2 Product: gcc Version: 4.8.2 Status: UNCONFIRMED Severity: major Priority: P3 Component: tree-optimization Assignee: unassigned at gcc dot gnu.org Reporter: mirzayanovmr at gmail dot com Created attachment 32546 --> http://gcc.gnu.org/bugzilla/attachment.cgi?id2546&actioníit Compile with -O2 and input 9 Compile the following code with -O2: ~~~~~ #include #include #include using namespace std; int main() { int n; cin >> n; for (int x = 0; x <= n; x++) { if (n == x + (x + 1) + (x + 2)) { cout << x + 2 << " " << x + 1 << " " << x << endl; exit(0); } } cout << -1 << endl; return 0; } ~~~~~ Start binary and enter 9 It will print "-1", but expected output is "4 3 2".