From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 19558 invoked by alias); 2 Oct 2009 19:24:49 -0000 Received: (qmail 19543 invoked by uid 22791); 2 Oct 2009 19:24:48 -0000 X-SWARE-Spam-Status: No, hits=-1.9 required=5.0 tests=AWL,BAYES_00,SARE_MSGID_LONG40,SPF_PASS X-Spam-Check-By: sourceware.org Received: from mail-yx0-f195.google.com (HELO mail-yx0-f195.google.com) (209.85.210.195) by sourceware.org (qpsmtpd/0.43rc1) with ESMTP; Fri, 02 Oct 2009 19:24:39 +0000 Received: by yxe33 with SMTP id 33so2317592yxe.0 for ; Fri, 02 Oct 2009 12:24:37 -0700 (PDT) MIME-Version: 1.0 Received: by 10.150.9.1 with SMTP id 1mr4937930ybi.342.1254511477518; Fri, 02 Oct 2009 12:24:37 -0700 (PDT) Date: Fri, 02 Oct 2009 19:24:00 -0000 Message-ID: Subject: [PATCH C++] Fix c++/41536, always_inline does not work always with constructors From: Andrew Pinski To: GCC Patches Content-Type: multipart/mixed; boundary=000e0cd7610afc07200474f8b6ad X-IsSubscribed: yes Mailing-List: contact gcc-patches-help@gcc.gnu.org; run by ezmlm Precedence: bulk List-Id: List-Archive: List-Post: List-Help: Sender: gcc-patches-owner@gcc.gnu.org X-SW-Source: 2009-10/txt/msg00161.txt.bz2 --000e0cd7610afc07200474f8b6ad Content-Type: text/plain; charset=UTF-8 Content-length: 751 Hi, The problem here is that for the cloned constructor DECLs, they don't have the attribute always_inline on them. This is because we created the cloned decls after the struct was finished and then while doing duplicate_decls, the clones are not updated with the new attributes. maybe_clone_body updates some of the cloned decl bits but it misses out on DECL_ATTRIBUTES and DECL_DISREGARD_INLINE_LIMITS. This patch adds the copying of DECL_ATTRIBUTES and DECL_DISREGARD_INLINE_LIMITS to maybe_clone_body. OK? Bootstrapped and tested on i386-darwin8.11 with no regressions. Thanks, Andrew Pinski ChangeLog: * optimize.c (maybe_clone_body): Copy DECL_ATTRIBUTES and DECL_DISREGARD_INLINE_LIMITS also. * g++.dg/ext/always_inline-5.C: New test. --000e0cd7610afc07200474f8b6ad Content-Type: text/plain; charset=US-ASCII; name="fixpr41536.diff.txt" Content-Disposition: attachment; filename="fixpr41536.diff.txt" Content-Transfer-Encoding: base64 X-Attachment-Id: f_g0bbp5zr0 Content-length: 1790 SW5kZXg6IHRlc3RzdWl0ZS9nKysuZGcvZXh0L2Fsd2F5c19pbmxpbmUtNS5D Cj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIHRlc3RzdWl0ZS9nKysuZGcv ZXh0L2Fsd2F5c19pbmxpbmUtNS5DCShyZXZpc2lvbiAwKQorKysgdGVzdHN1 aXRlL2crKy5kZy9leHQvYWx3YXlzX2lubGluZS01LkMJKHJldmlzaW9uIDAp CkBAIC0wLDAgKzEsMjggQEAKKy8vIHsgZGctZG8gY29tcGlsZSB9CitzdHJ1 Y3QgZgoreworICBpbmxpbmUgZih2b2lkKTsKKyAgaW5saW5lIHZvaWQgZjEo dm9pZCk7CisgIGludCBhOworfTsKKworaW5saW5lIF9fYXR0cmlidXRlX18o KGFsd2F5c19pbmxpbmUpKSAgZjo6Zih2b2lkKQoreworICBhKys7Cit9CisK K2lubGluZSBfX2F0dHJpYnV0ZV9fKChhbHdheXNfaW5saW5lKSkgdm9pZCAg Zjo6ZjEodm9pZCkKK3sKKyAgYSsrOworfQorCit2b2lkIGcodm9pZCkKK3sK KyAgZiBhLCBiLCBjLCBkOworICBhLmYxKCk7Cit9CisKKy8vIGY6OmYoKSBz aG91bGQgYmUgaW5saW5lZCBldmVuIGF0IC1PMAorLy8geyBkZy1maW5hbCB7 IHNjYW4tYXNzZW1ibGVyLW5vdCAiX1pOMWZDMUV2IiB9IH0KKy8vIExpa2V3 aXNlIGZvciBmOjpmMSgpCisvLyB7IGRnLWZpbmFsIHsgc2Nhbi1hc3NlbWJs ZXItbm90ICJfWk4xZjJmMUV2IiB9IH0KSW5kZXg6IGNwL29wdGltaXplLmMK PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PQotLS0gY3Avb3B0aW1pemUuYwkocmV2 aXNpb24gMTUyMzgwKQorKysgY3Avb3B0aW1pemUuYwkod29ya2luZyBjb3B5 KQpAQCAtMTk5LDYgKzE5OSw4IEBAIG1heWJlX2Nsb25lX2JvZHkgKHRyZWUg Zm4pCiAgICAgICBERUNMX1ZJU0lCSUxJVFkgKGNsb25lKSA9IERFQ0xfVklT SUJJTElUWSAoZm4pOwogICAgICAgREVDTF9WSVNJQklMSVRZX1NQRUNJRklF RCAoY2xvbmUpID0gREVDTF9WSVNJQklMSVRZX1NQRUNJRklFRCAoZm4pOwog ICAgICAgREVDTF9ETExJTVBPUlRfUCAoY2xvbmUpID0gREVDTF9ETExJTVBP UlRfUCAoZm4pOworICAgICAgREVDTF9BVFRSSUJVVEVTIChjbG9uZSkgPSBE RUNMX0FUVFJJQlVURVMgKGZuKTsKKyAgICAgIERFQ0xfRElTUkVHQVJEX0lO TElORV9MSU1JVFMgKGNsb25lKSA9IERFQ0xfRElTUkVHQVJEX0lOTElORV9M SU1JVFMgKGZuKTsKIAogICAgICAgLyogQWRqdXN0IHRoZSBwYXJhbWV0ZXIg bmFtZXMgYW5kIGxvY2F0aW9ucy4gICovCiAgICAgICBwYXJtID0gREVDTF9B UkdVTUVOVFMgKGZuKTsK --000e0cd7610afc07200474f8b6ad--