From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 29287 invoked by alias); 10 May 2018 19:33:37 -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 29264 invoked by uid 89); 10 May 2018 19:33:37 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-24.7 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=destructor, road X-HELO: mail-oi0-f49.google.com Received: from mail-oi0-f49.google.com (HELO mail-oi0-f49.google.com) (209.85.218.49) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Thu, 10 May 2018 19:33:35 +0000 Received: by mail-oi0-f49.google.com with SMTP id a6-v6so2789244oia.2 for ; Thu, 10 May 2018 12:33:35 -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:in-reply-to:references:from:date :message-id:subject:to:cc; bh=yODsydJvydMB9WaT6elXfYgYLvhvKKpu+2OPj03QmTw=; b=JAI63S3uGF9120sGa8/PbYYNv9y2V/p/4obr11ArrMnahiK08iwuLr933acqfjPQLQ SGXBs8ecy4m8ohquGrCQ6OcY+58moXAQUecuHUg4QTOavg7DYiarfWXa6gFVqweg+4BM EncTKkVIF6b3ciUERYJksFgQHSgm1Vipd3xSwR/no+2aC5kPPWJlLvu8OntQV9oXty/q 52bs0LrwUviXVINPU4R1VEzgxOwoNJFbXdF55Tnon8tObPvs6Y/v5kC4xIagYDIFV3hj tEPs4CzTYI0BT6BHCbwjkGDUTq3S85QjxU50NCKm7x8AQjFTTwgft5cMR/IjTqf4xx4b JS1g== X-Gm-Message-State: ALKqPwfEp8KjDFR+rkaigme1mjkVQgfwlc9T9gPJxbrEHjiIo9UpjKl5 2ht7kUfnGsSipru90gNS155K/9czDP60MAzXse78kg== X-Google-Smtp-Source: AB8JxZq53NLw2fAebRg11ZRuMooDYi5AyW88430Rfmo090ySqQkyBbiT+j+E6RNzDLEfCyVnJT54JlxH4Ja3Qy+s9QI= X-Received: by 2002:aca:5b89:: with SMTP id p131-v6mr1556201oib.8.1525980813765; Thu, 10 May 2018 12:33:33 -0700 (PDT) MIME-Version: 1.0 Received: by 10.201.13.229 with HTTP; Thu, 10 May 2018 12:33:13 -0700 (PDT) In-Reply-To: References: From: Jason Merrill Date: Thu, 10 May 2018 19:34:00 -0000 Message-ID: Subject: Re: RFA (make_dispatcher_decl): PATCH for c++/83911, ICE with multiversioned constructor To: Jason Merrill Cc: gcc-patches List Content-Type: multipart/mixed; boundary="00000000000056ebca056bdf1850" X-IsSubscribed: yes X-SW-Source: 2018-05/txt/msg00511.txt.bz2 --00000000000056ebca056bdf1850 Content-Type: text/plain; charset="UTF-8" Content-length: 1384 On Fri, Mar 16, 2018 at 8:38 AM, Jason Merrill wrote: > On Thu, Mar 15, 2018 at 4:50 AM, Richard Biener > wrote: >> On Wed, Mar 14, 2018 at 8:57 PM, Jason Merrill wrote: >>> Ping >>> >>> On Fri, Mar 2, 2018 at 1:23 PM, Jason Merrill wrote: >>>> As I mentioned in the PR, the problem here is that we're replacing a >>>> constructor with a dispatcher function which doesn't look much like a >>>> constructor. This patch adjusts make_dispatcher_decl to make it look >>>> more like the functions it dispatches to, but other things are certain >>>> to break for similar reasons down the road. A proper solution should >>>> be more transparent, like thunks. >>>> >>>> Tested x86_64-pc-linux-gnu. Does this seem worth applying to fix the >>>> regression? >> >> The patch looks reasonable to me, you probably know best whether >> the cp/ parts are risky or not ;) >> >> So - OK from my POV. >> >> And yes, thunks may be a better representation for the dispatcher. > > It occurred to me that I could handle this more locally by deferring > the function substitution until genericization time, so this is what > I'm checking in: ...but now that we're in stage 1, it still seems sensible to have a single way of checking whether something is a constructor. Tested x86_64-pc-linux-gnu, applying to trunk. --00000000000056ebca056bdf1850 Content-Type: text/x-patch; charset="US-ASCII"; name="ctor_p.diff" Content-Disposition: attachment; filename="ctor_p.diff" Content-Transfer-Encoding: base64 X-Attachment-Id: f_jh0xixnq1 Content-length: 1578 Y29tbWl0IDY1NmQwMzhmZTBjZjc4YTI0MzJhOGM5YTA0N2VkYzkzYWY2ZDVi MjMKQXV0aG9yOiBKYXNvbiBNZXJyaWxsIDxqYXNvbkByZWRoYXQuY29tPgpE YXRlOiAgIEZyaSBNYXIgMTYgMDg6MzI6MjYgMjAxOCAtMDQwMAoKICAgICAg ICAgICAgKiBjcC10cmVlLmggKERFQ0xfQ09OU1RSVUNUT1JfUCk6IFVzZSBE RUNMX0NYWF9DT05TVFJVQ1RPUl9QLgogICAgCiAgICAgICAgICAgIChERUNM X0RFU1RSVUNUT1JfUCk6IFVzZSBERUNMX0NYWF9ERVNUUlVDVE9SX1AuCgpk aWZmIC0tZ2l0IGEvZ2NjL2NwL2NwLXRyZWUuaCBiL2djYy9jcC9jcC10cmVl LmgKaW5kZXggMmRmMTU4YzllYTYuLmE0ZTAwOTlhMjQ5IDEwMDY0NAotLS0g YS9nY2MvY3AvY3AtdHJlZS5oCisrKyBiL2djYy9jcC9jcC10cmVlLmgKQEAg LTI3MzEsNyArMjczMSw3IEBAIHN0cnVjdCBHVFkoKCkpIGxhbmdfZGVjbCB7 CiAvKiBGb3IgRlVOQ1RJT05fREVDTHMgYW5kIFRFTVBMQVRFX0RFQ0xzOiBu b256ZXJvIG1lYW5zIHRoYXQgdGhpcyBmdW5jdGlvbgogICAgaXMgYSBjb25z dHJ1Y3Rvci4gICovCiAjZGVmaW5lIERFQ0xfQ09OU1RSVUNUT1JfUChOT0RF KSBcCi0gIElERU5USUZJRVJfQ1RPUl9QIChERUNMX05BTUUgKE5PREUpKQor ICBERUNMX0NYWF9DT05TVFJVQ1RPUl9QIChTVFJJUF9URU1QTEFURSAoTk9E RSkpCiAKIC8qIE5vbnplcm8gaWYgTk9ERSAoYSBGVU5DVElPTl9ERUNMKSBp cyBhIGNvbnN0cnVjdG9yIGZvciBhIGNvbXBsZXRlCiAgICBvYmplY3QuICAq LwpAQCAtMjc2MCw3ICsyNzYwLDcgQEAgc3RydWN0IEdUWSgoKSkgbGFuZ19k ZWNsIHsKIC8qIE5vbnplcm8gaWYgTk9ERSAoYSBGVU5DVElPTl9ERUNMIG9y IFRFTVBMQVRFX0RFQ0wpCiAgICBpcyBhIGRlc3RydWN0b3IuICAqLwogI2Rl ZmluZSBERUNMX0RFU1RSVUNUT1JfUChOT0RFKQkJCQlcCi0gIElERU5USUZJ RVJfRFRPUl9QIChERUNMX05BTUUgKE5PREUpKQorICBERUNMX0NYWF9ERVNU UlVDVE9SX1AgKFNUUklQX1RFTVBMQVRFIChOT0RFKSkKIAogLyogTm9uemVy byBpZiBOT0RFIChhIEZVTkNUSU9OX0RFQ0wpIGlzIGEgZGVzdHJ1Y3Rvciwg YnV0IG5vdCB0aGUKICAgIHNwZWNpYWxpemVkIGluLWNoYXJnZSBjb25zdHJ1 Y3RvciwgaW4tY2hhcmdlIGRlbGV0aW5nIGNvbnN0cnVjdG9yLAo= --00000000000056ebca056bdf1850--