From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 69982 invoked by alias); 18 Aug 2017 10:10:11 -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 69938 invoked by uid 89); 18 Aug 2017 10:10:09 -0000 Authentication-Results: sourceware.org; auth=none X-Virus-Found: No X-Spam-SWARE-Status: No, score=-1.8 required=5.0 tests=AWL,BAYES_00,FREEMAIL_FROM,RCVD_IN_DNSWL_NONE,RCVD_IN_SORBS_SPAM,SPF_PASS autolearn=no version=3.3.2 spammy=hear X-HELO: mail-wr0-f193.google.com Received: from mail-wr0-f193.google.com (HELO mail-wr0-f193.google.com) (209.85.128.193) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Fri, 18 Aug 2017 10:10:02 +0000 Received: by mail-wr0-f193.google.com with SMTP id p14so4132666wrg.1 for ; Fri, 18 Aug 2017 03:10:02 -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=SDoU5PUTUiwdwjbhdaUtHIVgbNaoqXGAnNXMea8qRGE=; b=XKBGFsI56AmS6Gjzp/FwMuGwoDl/1PWJAN07ZdXhS0Q+lb7vmj/BGD/JUL1mdGXlu4 Kju8yXav8fTjLRBDmES+JUvR5B042x/58r7yzly7zhEWyKtjMmOfgJMMGACeqHtR0a8c qxIN1jtu9GXDD452fOKbdbAlg/i4PahFNfW9VKyRxq0uZUHhfA/0yWByYdETkX0xFZFf a7obBGhk7EGjPFGjL6qsq6LnBUHo3H8mWljsQgGmoM1xmJu5fqzSB/adN0FoqqIqO/Cp y4bK5Y5ly+BR8y06JyHy50vrjYRv2dzxjwNYbtJ1n28szniq6lLoGzBVTLqybjBAyqvQ QD8w== X-Gm-Message-State: AHYfb5ihBkLehkWVnTnnq8hQ/Q/gTC77LDvsmMtBoInemIAbuqFS/FIN WNQk9lcs/kbqclzcBMlwbC57ZayYeg== X-Received: by 10.80.145.70 with SMTP id f6mr366783eda.292.1503051000689; Fri, 18 Aug 2017 03:10:00 -0700 (PDT) MIME-Version: 1.0 Received: by 10.80.180.249 with HTTP; Fri, 18 Aug 2017 03:10:00 -0700 (PDT) In-Reply-To: References: <20170314122410.21497-1-derodat@adacore.com> <4506b40b-f2a4-5ed8-42d9-62902d9fb288@redhat.com> <2218947e-e30b-cc03-1421-27a17b8b7042@adacore.com> From: Richard Biener Date: Fri, 18 Aug 2017 10:39:00 -0000 Message-ID: Subject: Re: [PATCH] [PR79542][Ada] Fix ICE in dwarf2out.c with nested func. inlining To: Pierre-Marie de Rodat Cc: Jason Merrill , gcc-patches List Content-Type: multipart/mixed; boundary="f403045c1d3efa4d070557045410" X-IsSubscribed: yes X-SW-Source: 2017-08/txt/msg01119.txt.bz2 --f403045c1d3efa4d070557045410 Content-Type: text/plain; charset="UTF-8" Content-length: 2952 On Tue, Aug 15, 2017 at 1:16 PM, Richard Biener wrote: > On Sat, Aug 12, 2017 at 11:09 AM, Pierre-Marie de Rodat > wrote: >> On 08/11/2017 11:29 PM, Jason Merrill wrote: >>> >>> OK. >> >> >> Committed. Thank you for your sustained review effort, Jason. :-) > > The way you use decl_ultimate_origin conflicts with the early LTO > debug patches which > make dwarf2out_abstract_function call set_decl_origin_self and thus the assert > in gen_typedef_die triggers (and the rest probably misbehaves). > > Now I wonder whether we at any point need that self-origin? > > Currently it's set via > > static dw_die_ref > gen_decl_die (tree decl, tree origin, struct vlr_context *ctx, > dw_die_ref context_die) > { > ... > case FUNCTION_DECL: > #if 0 > /* FIXME */ > /* This doesn't work because the C frontend sets DECL_ABSTRACT_ORIGIN > on local redeclarations of global functions. That seems broken. */ > if (current_function_decl != decl) > /* This is only a declaration. */; > #endif > > /* If we're emitting a clone, emit info for the abstract instance. */ > if (origin || DECL_ORIGIN (decl) != decl) > dwarf2out_abstract_function (origin > ? DECL_ORIGIN (origin) > : DECL_ABSTRACT_ORIGIN (decl)); > > /* If we're emitting an out-of-line copy of an inline function, > emit info for the abstract instance and set up to refer to it. */ > else if (cgraph_function_possibly_inlined_p (decl) > && ! DECL_ABSTRACT_P (decl) > && ! class_or_namespace_scope_p (context_die) > /* dwarf2out_abstract_function won't emit a die if this is just > a declaration. We must avoid setting DECL_ABSTRACT_ORIGIN in > that case, because that works only if we have a die. */ > && DECL_INITIAL (decl) != NULL_TREE) > { > dwarf2out_abstract_function (decl); > set_decl_origin_self (decl); > } > > ok, not doing this at all doesn't work, doing it only in the above case neither. > > Bah. > > Can anyone explain to me why we do the set_decl_origin_self dance? Ok, so I need the following incremental patch to fix the fallout. This allows Ada LTO bootstrap to succeed with the early LTO debug patches. I assume this change is ok ontop of the LTO debug patches unless I hear otherwise til Monday (when I then finally will commit the series). Full bootstrap/testing running now. Thanks, Richard. 2017-08-18 Richard Biener * dwarf2out.c (modified_type_die): Check for self origin before recursing. (gen_type_die_with_usage): Likewise. (gen_typedef_die): Allow self origin. * tree.c (variably_modified_type_p): Guard against Ada recursive pointer types. --f403045c1d3efa4d070557045410 Content-Type: application/octet-stream; name=p Content-Disposition: attachment; filename=p Content-Transfer-Encoding: base64 X-Attachment-Id: f_j6hpr3da0 Content-length: 3380 MjAxNy0wOC0xOCAgUmljaGFyZCBCaWVuZXIgIDxyZ3VlbnRoZXJAc3VzZS5k ZT4KCgkqIGR3YXJmMm91dC5jIChtb2RpZmllZF90eXBlX2RpZSk6IENoZWNr IGZvciBzZWxmIG9yaWdpbiBiZWZvcmUKCXJlY3Vyc2luZy4KCShnZW5fdHlw ZV9kaWVfd2l0aF91c2FnZSk6IExpa2V3aXNlLgoJKGdlbl90eXBlZGVmX2Rp ZSk6IEFsbG93IHNlbGYgb3JpZ2luLgoJKiB0cmVlLmMgKHZhcmlhYmx5X21v ZGlmaWVkX3R5cGVfcCk6IEd1YXJkIGFnYWluc3QgQWRhIHJlY3Vyc2l2ZQoJ cG9pbnRlciB0eXBlcy4KCkluZGV4OiBlYXJseS1sdG8tZGVidWcvZ2NjL2R3 YXJmMm91dC5jCj09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT0KLS0tIGVhcmx5LWx0 by1kZWJ1Zy5vcmlnL2djYy9kd2FyZjJvdXQuYwkyMDE3LTA4LTE4IDEyOjA3 OjM3LjY3MDYwOTgyMCArMDIwMAorKysgZWFybHktbHRvLWRlYnVnL2djYy9k d2FyZjJvdXQuYwkyMDE3LTA4LTE4IDEwOjE2OjU5LjI2MTcyNzUyNSArMDIw MApAQCAtMTI4MzcsNyArMTI4MzcsNyBAQCBtb2RpZmllZF90eXBlX2RpZSAo dHJlZSB0eXBlLCBpbnQgY3ZfcXVhCiAJICAvKiBUeXBlZGVmIHZhcmlhbnRz IHRoYXQgaGF2ZSBhbiBhYnN0cmFjdCBvcmlnaW4gZG9uJ3QgZ2V0IHRoZWly IG93bgogCSAgICAgdHlwZSBESUUgKHNlZSBnZW5fdHlwZWRlZl9kaWUpLCBz byBmYWxsIGJhY2sgb24gdGhlIHVsdGltYXRlCiAJICAgICBhYnN0cmFjdCBv cmlnaW4gaW5zdGVhZC4gICovCi0JICBpZiAob3JpZ2luICE9IE5VTEwpCisJ ICBpZiAob3JpZ2luICE9IE5VTEwgJiYgb3JpZ2luICE9IG5hbWUpCiAJICAg IHJldHVybiBtb2RpZmllZF90eXBlX2RpZSAoVFJFRV9UWVBFIChvcmlnaW4p LCBjdl9xdWFscywgcmV2ZXJzZSwKIAkJCQkgICAgICBjb250ZXh0X2RpZSk7 CiAKQEAgLTI0NTQ1LDcgKzI0NTQ1LDggQEAgZ2VuX3R5cGVkZWZfZGllICh0 cmVlIGRlY2wsIGR3X2RpZV9yZWYgYwogICAvKiBBcyB3ZSBhdm9pZCBjcmVh dGluZyBESUVzIGZvciBsb2NhbCB0eXBlZGVmcyAoc2VlIGRlY2xfdWx0aW1h dGVfb3JpZ2luCiAgICAgIGNoZWNrcyBpbiBwcm9jZXNzX3Njb3BlX3ZhciBh bmQgbW9kaWZpZWRfdHlwZV9kaWUpLCB0aGlzIHNob3VsZCBiZSBjYWxsZWQK ICAgICAgb25seSBmb3Igb3JpZ2luYWwgdHlwZXMuICAqLwotICBnY2NfYXNz ZXJ0IChkZWNsX3VsdGltYXRlX29yaWdpbiAoZGVjbCkgPT0gTlVMTCk7Cisg IGdjY19hc3NlcnQgKGRlY2xfdWx0aW1hdGVfb3JpZ2luIChkZWNsKSA9PSBO VUxMCisJICAgICAgfHwgZGVjbF91bHRpbWF0ZV9vcmlnaW4gKGRlY2wpID09 IGRlY2wpOwogCiAgIFRSRUVfQVNNX1dSSVRURU4gKGRlY2wpID0gMTsKICAg dHlwZV9kaWUgPSBuZXdfZGllIChEV19UQUdfdHlwZWRlZiwgY29udGV4dF9k aWUsIGRlY2wpOwpAQCAtMjQ3MjAsNyArMjQ3MjEsNyBAQCBnZW5fdHlwZV9k aWVfd2l0aF91c2FnZSAodHJlZSB0eXBlLCBkd19kCiAKICAgICAgIHRyZWUg bmFtZSA9IFRZUEVfTkFNRSAodHlwZSk7CiAgICAgICB0cmVlIG9yaWdpbiA9 IGRlY2xfdWx0aW1hdGVfb3JpZ2luIChuYW1lKTsKLSAgICAgIGlmIChvcmln aW4gIT0gTlVMTCkKKyAgICAgIGlmIChvcmlnaW4gIT0gTlVMTCAmJiBvcmln aW4gIT0gbmFtZSkKIAl7CiAJICBnZW5fZGVjbF9kaWUgKG9yaWdpbiwgTlVM TCwgTlVMTCwgY29udGV4dF9kaWUpOwogCSAgcmV0dXJuOwpJbmRleDogZWFy bHktbHRvLWRlYnVnL2djYy90cmVlLmMKPT09PT09PT09PT09PT09PT09PT09 PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09PT09 PQotLS0gZWFybHktbHRvLWRlYnVnLm9yaWcvZ2NjL3RyZWUuYwkyMDE3LTA4 LTE4IDEyOjA3OjM3Ljc4NjYxMTkxNyArMDIwMAorKysgZWFybHktbHRvLWRl YnVnL2djYy90cmVlLmMJMjAxNy0wOC0xNyAxNjo1Mjo1MC4zMDI5Njk5OTQg KzAyMDAKQEAgLTg2MDEsOCArODYwMSwxNiBAQCB2YXJpYWJseV9tb2RpZmll ZF90eXBlX3AgKHRyZWUgdHlwZSwgdHJlCiAgICAgY2FzZSBQT0lOVEVSX1RZ UEU6CiAgICAgY2FzZSBSRUZFUkVOQ0VfVFlQRToKICAgICBjYXNlIFZFQ1RP Ul9UWVBFOgorICAgICAgLyogQWRhIGNhbiBoYXZlIHBvaW50ZXIgdHlwZXMg cmVmZXJpbmcgdG8gdGhlbXNlbHZlcyBpbmRpcmVjdGx5LiAgKi8KKyAgICAg IGlmIChUUkVFX1ZJU0lURUQgKHR5cGUpKQorCXJldHVybiBmYWxzZTsKKyAg ICAgIFRSRUVfVklTSVRFRCAodHlwZSkgPSB0cnVlOwogICAgICAgaWYgKHZh cmlhYmx5X21vZGlmaWVkX3R5cGVfcCAoVFJFRV9UWVBFICh0eXBlKSwgZm4p KQotCXJldHVybiB0cnVlOworCXsKKwkgIFRSRUVfVklTSVRFRCAodHlwZSkg PSBmYWxzZTsKKwkgIHJldHVybiB0cnVlOworCX0KKyAgICAgIFRSRUVfVklT SVRFRCAodHlwZSkgPSBmYWxzZTsKICAgICAgIGJyZWFrOwogCiAgICAgY2Fz ZSBGVU5DVElPTl9UWVBFOgo= --f403045c1d3efa4d070557045410--