From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 25203 invoked by alias); 3 Apr 2018 17:40:08 -0000 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 Received: (qmail 25191 invoked by uid 89); 3 Apr 2018 17:40:08 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-25.2 required=5.0 tests=AWL,BAYES_00,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,RCVD_IN_DNSWL_NONE autolearn=ham version=3.3.2 spammy= X-HELO: mail-ot0-f182.google.com Received: from mail-ot0-f182.google.com (HELO mail-ot0-f182.google.com) (74.125.82.182) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 03 Apr 2018 17:40:06 +0000 Received: by mail-ot0-f182.google.com with SMTP id p33-v6so14026973otp.11 for ; Tue, 03 Apr 2018 10:40:06 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to; bh=MHQ/uZ+sMq4GR8EzoZ2mvNzLE6VMW4IxA/yid1lw5AI=; b=EgMT/Ihoqi/N3BID1SbioV/J4yS6QSfweUd3Eoub32yAFRMqNPRTG7hWQ9x0yL3+10 7RHEpqNXT029cEztX2sefMW9EPzEhioRJwjZS5cue2MeagWyU2jX7ld7mUUnG/4nJxrJ lQFTHh64DXt0f3mRlj/cWr4jxdJuD3pvJTXnPWUGDtPAaqZaKA4OpDnDiF4cyf06sSIx RsI8X6kMeEz0+LdKPavJ/LESvy8TjXh35liSNbmH0nPXRFwa2e2Z3HE0fmA79LdAnDus D38V6jQOqfobxcpgNGlXscA65cz73mkz5TKdfF6k0dw2ZBFy8YvXTb5GLUxSNNE8NiOL ONSg== X-Gm-Message-State: ALQs6tCG6Ux69GmGh272DLrI/K7BlxFk2yDtk5ZOpaJ3eJu1NrTqlLgC QSiMo5JgbOSphIhMrcJvqret99pbqfvJzCzQANfwxHG2 X-Google-Smtp-Source: AIpwx49WtfIbXlUYL0t91chvH3PqLKoTII256PpERhHo6F8Qhtaguo0Nd60ltiq87Rym31laXn9SJ2D15pAaxOR6TtM= X-Received: by 2002:a9d:e84:: with SMTP id 4-v6mr9112261otj.14.1522777204913; Tue, 03 Apr 2018 10:40:04 -0700 (PDT) MIME-Version: 1.0 Received: by 10.201.7.234 with HTTP; Tue, 3 Apr 2018 10:39:44 -0700 (PDT) From: Jason Merrill Date: Tue, 03 Apr 2018 17:40:00 -0000 Message-ID: Subject: C++ PATCH to merge_types for malloc redeclaration To: gcc-patches List Content-Type: multipart/mixed; boundary="0000000000005f3e790568f53232" X-IsSubscribed: yes X-SW-Source: 2018-04/txt/msg00111.txt.bz2 --0000000000005f3e790568f53232 Content-Type: text/plain; charset="UTF-8" Content-length: 767 In this testcase, we have multiple declarations of malloc. The one in the "system header" has a non-throwing exception specification, while the one in user code has none. By default we allow this mismatch when the old declaration is in a system header, but we mean to prefer the type of the user declaration. In this testcase that was breaking because the old declaration had attributes added by the compiler, and the code at the bottom of merge_types decided to throw away the work earlier in the function to build up a new FUNCTION_TYPE in t1 because t2 had the right attributes. This is a C++17 regression. Fixed by limiting the attribute checking code to the case where we aren't building up a new type in t1. Tested x86_64-pc-linux-gnu, applying to trunk. --0000000000005f3e790568f53232 Content-Type: text/x-patch; charset="US-ASCII"; name="merge.diff" Content-Disposition: attachment; filename="merge.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jfjy35hd0 Content-length: 2497 Y29tbWl0IDAyNDliMDJhYmJhMWMzMDllYWYxMThhMGVmMTU4YTMyZjY4MzNj YjMKQXV0aG9yOiBKYXNvbiBNZXJyaWxsIDxqYXNvbkByZWRoYXQuY29tPgpE YXRlOiAgIE1vbiBBcHIgMiAxNzo0OTowNiAyMDE4IC0wNDAwCgogICAgRml4 IG5vZXhjZXB0IG1lcmdpbmcgd2l0aCBzeXN0ZW0gaGVhZGVycy4KICAgIAog ICAgICAgICAgICAqIHR5cGVjay5jIChtZXJnZV90eXBlcyk6IExpbWl0IG1h dGNoaW5nIGF0dHJpYnV0ZSBzaG9ydGN1dCB0bwogICAgICAgICAgICB0aGUg ZGVmYXVsdCBjYXNlLgoKZGlmZiAtLWdpdCBhL2djYy9jcC90eXBlY2suYyBi L2djYy9jcC90eXBlY2suYwppbmRleCBkNDU0YzZjNWEyOS4uZTMzZjJjMzRj N2YgMTAwNjQ0Ci0tLSBhL2djYy9jcC90eXBlY2suYworKysgYi9nY2MvY3Av dHlwZWNrLmMKQEAgLTg5OSwxNCArODk5LDE0IEBAIG1lcmdlX3R5cGVzICh0 cmVlIHQxLCB0cmVlIHQyKQogICAgICAgcmV0dXJuIHQxOwogCiAgICAgZGVm YXVsdDo7CisgICAgICBpZiAoYXR0cmlidXRlX2xpc3RfZXF1YWwgKFRZUEVf QVRUUklCVVRFUyAodDEpLCBhdHRyaWJ1dGVzKSkKKwlyZXR1cm4gdDE7Cisg ICAgICBlbHNlIGlmIChhdHRyaWJ1dGVfbGlzdF9lcXVhbCAoVFlQRV9BVFRS SUJVVEVTICh0MiksIGF0dHJpYnV0ZXMpKQorCXJldHVybiB0MjsKKyAgICAg IGJyZWFrOwogICAgIH0KIAotICBpZiAoYXR0cmlidXRlX2xpc3RfZXF1YWwg KFRZUEVfQVRUUklCVVRFUyAodDEpLCBhdHRyaWJ1dGVzKSkKLSAgICByZXR1 cm4gdDE7Ci0gIGVsc2UgaWYgKGF0dHJpYnV0ZV9saXN0X2VxdWFsIChUWVBF X0FUVFJJQlVURVMgKHQyKSwgYXR0cmlidXRlcykpCi0gICAgcmV0dXJuIHQy OwotICBlbHNlCi0gICAgcmV0dXJuIGNwX2J1aWxkX3R5cGVfYXR0cmlidXRl X3ZhcmlhbnQgKHQxLCBhdHRyaWJ1dGVzKTsKKyAgcmV0dXJuIGNwX2J1aWxk X3R5cGVfYXR0cmlidXRlX3ZhcmlhbnQgKHQxLCBhdHRyaWJ1dGVzKTsKIH0K IAogLyogUmV0dXJuIHRoZSBBUlJBWV9UWVBFIHR5cGUgd2l0aG91dCBpdHMg ZG9tYWluLiAgKi8KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZysrLmRn L2NwcDF6L25vZXhjZXB0LXR5cGUxOS5DIGIvZ2NjL3Rlc3RzdWl0ZS9nKysu ZGcvY3BwMXovbm9leGNlcHQtdHlwZTE5LkMKbmV3IGZpbGUgbW9kZSAxMDA2 NDQKaW5kZXggMDAwMDAwMDAwMDAuLjU3MWM0MjZhYTY3Ci0tLSAvZGV2L251 bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvY3BwMXovbm9leGNlcHQt dHlwZTE5LkMKQEAgLTAsMCArMSwxNCBAQAorLy8geyBkZy1kbyBjb21waWxl IHsgdGFyZ2V0IGMrKzExIH0gfQorCisjaW5jbHVkZSAibm9leGNlcHQtdHlw ZTE5LmgiCisKK2V4dGVybiAiQyIgdm9pZCAqbWFsbG9jIChzaXplX3QpOwor Cit0ZW1wbGF0ZTxjbGFzcyBUPiB2b2lkIGYoVCopOworCit2b2lkICpnKHNp emVfdCk7CisKK2ludCBtYWluKCkKK3sKKyAgZjxkZWNsdHlwZShtYWxsb2Mp PihnKTsKK30KZGlmZiAtLWdpdCBhL2djYy90ZXN0c3VpdGUvZysrLmRnL2Nw cDF6L25vZXhjZXB0LXR5cGUxOS5oIGIvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcv Y3BwMXovbm9leGNlcHQtdHlwZTE5LmgKbmV3IGZpbGUgbW9kZSAxMDA2NDQK aW5kZXggMDAwMDAwMDAwMDAuLjMzYTI5MzU3ZTdmCi0tLSAvZGV2L251bGwK KysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvY3BwMXovbm9leGNlcHQtdHlw ZTE5LmgKQEAgLTAsMCArMSw0IEBACisjcHJhZ21hIEdDQyBzeXN0ZW1faGVh ZGVyCisKK3R5cGVkZWYgZGVjbHR5cGUoc2l6ZW9mKDApKSBzaXplX3Q7Citl eHRlcm4gIkMiIHZvaWQgKm1hbGxvYyAoc2l6ZV90KSB0aHJvdygpOwo= --0000000000005f3e790568f53232--