From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from us-smtp-delivery-124.mimecast.com (us-smtp-delivery-124.mimecast.com [170.10.129.124]) by sourceware.org (Postfix) with ESMTPS id EB0F4383FBBB for ; Mon, 12 Sep 2022 16:10:51 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EB0F4383FBBB Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=redhat.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=redhat.com DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1662999051; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=5u9Msse8jb+VJF8ekewFCk+AXp8pmdOz/KPzNsTGC24=; b=cUxcX6XRocKIdnvxqVOekMhi7o1ojSXbuk0qctAyzQScuYp/pZRDsftgz0MvlLt8Nw/oE0 gQHfXvIg9v9OauY8jtqfpQ0wPPUUZT2QLpTwzWqE757GyktXp6s8VhgxFFV1ZAHv9M2GPM yxxqamsDz/EqQfpafr0CaCc1lNIDDAM= Received: from mail-qv1-f72.google.com (mail-qv1-f72.google.com [209.85.219.72]) by relay.mimecast.com with ESMTP with STARTTLS (version=TLSv1.3, cipher=TLS_AES_128_GCM_SHA256) id us-mta-343-3jw99WB8ONGyYihrA5FOhA-1; Mon, 12 Sep 2022 12:10:49 -0400 X-MC-Unique: 3jw99WB8ONGyYihrA5FOhA-1 Received: by mail-qv1-f72.google.com with SMTP id k10-20020ad4450a000000b004aa116eebe8so6040474qvu.5 for ; Mon, 12 Sep 2022 09:10:49 -0700 (PDT) X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=in-reply-to:from:to:references:content-language:subject:user-agent :mime-version:date:message-id:x-gm-message-state:from:to:cc:subject :date; bh=dozCPTT+IvVeggztrMeASrTrfAsNLE8U6uwdOgIi/tg=; b=3Qli3+iOS2fK1UfxIrCWdC0oLCD9hcHHi8dCmqqNaepuCM+gTNPtgMP9XGTfeBQIQ6 ykfjMa0XIDm47+nWF3PhIHCI3aPlDJCkLMmqlcDurhlm3rg5/P1ah34nn4B1F492FkSt hX6KKDUinClTV97nJd+7IOadE1/pXtxoFQEt+NdKgTdY+bIotN1SAuY0LbWFpe4wDI7Z r8vwJgujUJJT8iqRlcpOwYYO5UhhrWcZyz1pm5yLUD4zEWdQhKjZZ+UEq3tGEhIZixIw jPLuspJkWriz05HIAARQSpJKAFkLz3MvKDZU3qNmIWYjJLRdKlmrVbN7mQ/DK6jlQq6v nH7w== X-Gm-Message-State: ACgBeo2IgwZdz8JLPgdgFib+yytq68UhA7XRZkZ2uxsCGd4V6xtBE5kQ w/EixZEpDZR8jmRCq1iV6f7ZECOkAJU5m1R8aW1nZuuDrrWoZ1rlMmJJXQSx33zHiPHsYSBg/di sGgHue3PeXLO9RqqGAfwOSftlKWrc/7GrExGmuJpU9gHSBouGLDvlqZm0Qb2sG1ql4Q== X-Received: by 2002:a05:620a:222f:b0:6cb:dc20:f0c3 with SMTP id n15-20020a05620a222f00b006cbdc20f0c3mr13294891qkh.366.1662999048940; Mon, 12 Sep 2022 09:10:48 -0700 (PDT) X-Google-Smtp-Source: AA6agR40OyEWgAWYDGV3vhHRuhP94L2hmC39WsQvGwHSGbs4BODd6TbbPYnklWp76BVHL+IXnJpQ+g== X-Received: by 2002:a05:620a:222f:b0:6cb:dc20:f0c3 with SMTP id n15-20020a05620a222f00b006cbdc20f0c3mr13294860qkh.366.1662999048484; Mon, 12 Sep 2022 09:10:48 -0700 (PDT) Received: from [192.168.1.101] (130-44-159-43.s15913.c3-0.arl-cbr1.sbo-arl.ma.cable.rcncustomer.com. [130.44.159.43]) by smtp.gmail.com with ESMTPSA id p22-20020ac84096000000b00342fb07944fsm7269619qtl.82.2022.09.12.09.10.47 for (version=TLS1_3 cipher=TLS_AES_128_GCM_SHA256 bits=128/128); Mon, 12 Sep 2022 09:10:47 -0700 (PDT) Message-ID: <82ad152b-756c-f981-7bae-3d56c2d5b197@redhat.com> Date: Mon, 12 Sep 2022 12:10:47 -0400 MIME-Version: 1.0 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:91.0) Gecko/20100101 Thunderbird/91.13.0 Subject: Re: [PATCH] c++: Refer to internal linkage for -Wsubobject-linkage [PR86491] References: To: gcc-patches List From: Jason Merrill In-Reply-To: X-Forwarded-Message-Id: X-Mimecast-Spam-Score: 0 X-Mimecast-Originator: redhat.com Content-Type: multipart/mixed; boundary="------------Ox115d4oYHxIYOL9TIingD6E" Content-Language: en-US X-Spam-Status: No, score=-14.0 required=5.0 tests=BAYES_00,DKIMWL_WL_HIGH,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,NICE_REPLY_A,RCVD_IN_DNSWL_LOW,SPF_HELO_NONE,SPF_NONE,TXREP,T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: This is a multi-part message in MIME format. --------------Ox115d4oYHxIYOL9TIingD6E Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 7bit Oops, failed to CC the list. -------- Forwarded Message -------- Subject: Re: [PATCH] c++: Refer to internal linkage for -Wsubobject-linkage [PR86491] Date: Mon, 12 Sep 2022 12:09:38 -0400 From: Jason Merrill To: Jonathan Wakely On 7/23/22 07:31, Jonathan Wakely wrote: > I'll try that on Monday, thanks! > > On Fri, 22 Jul 2022 at 22:30, Jason Merrill wrote: >> >> On 6/30/22 12:53, Jonathan Wakely via Gcc-patches wrote: >>> Tested powerpc64le-linux, OK for trunk? >>> >>> -- >8 -- >>> >>> Since C++11 relaxed the requirement for template arguments to have >>> external linkage, it's possible to get -Wsubobject-linkage warnings >>> without using any anonymous namespaces. This confuses users when they >>> get diagnostics that refer to an anonymous namespace that doesn't exist >>> in their code. >>> >>> This changes the diagnostic to say "has internal linkage" for C++11 and >>> later, which is accurate whether internal linkage is due to the 'static' >>> specifier, or due to the use of anonymous namespaces. >>> >>> For C++98 template arguments declared with 'static' are ill-formed >>> anyway, so the only way this warning can arise is via anonymous >>> namespaces. That means the existing wording is accurate for C++98 and so >>> we can keep it. >> >> I'd prefer to keep the existing wording for types that are actually in >> an anonymous namespace. Checking decl_anon_ns_mem_p seems like the way >> to do that, though it would probably need to remove the existing type >> shortcut and instead just do decl = TYPE_MAIN_DECL (decl). I decided to follow up on this myself, and ended up renaming the current function as other users relied on its semantics. Tested x86_64-pc-linux-gnu, applying to trunk. --------------Ox115d4oYHxIYOL9TIingD6E Content-Type: text/x-patch; charset=UTF-8; name="0001-c-Refer-to-internal-linkage-for-Wsubobject-linkage-P.patch" Content-Disposition: attachment; filename*0="0001-c-Refer-to-internal-linkage-for-Wsubobject-linkage-P.pa"; filename*1="tch" Content-Transfer-Encoding: base64 RnJvbSA2Y2JmZjA1NTc5YjhkMWFjZmU5NTNiNjliYTI3MTBkNmIzNmU4MzBlIE1vbiBTZXAgMTcg MDA6MDA6MDAgMjAwMQpGcm9tOiBKb25hdGhhbiBXYWtlbHkgPGp3YWtlbHlAcmVkaGF0LmNvbT4K RGF0ZTogVGh1LCAzMCBKdW4gMjAyMiAxNzo1MzoyNiArMDEwMApTdWJqZWN0OiBbUEFUQ0hdIGMr KzogUmVmZXIgdG8gaW50ZXJuYWwgbGlua2FnZSBmb3IgLVdzdWJvYmplY3QtbGlua2FnZQogW1BS ODY0OTFdClRvOiBnY2MtcGF0Y2hlc0BnY2MuZ251Lm9yZwoKU2luY2UgQysrMTEgcmVsYXhlZCB0 aGUgcmVxdWlyZW1lbnQgZm9yIHRlbXBsYXRlIGFyZ3VtZW50cyB0byBoYXZlCmV4dGVybmFsIGxp bmthZ2UsIGl0J3MgcG9zc2libGUgdG8gZ2V0IC1Xc3Vib2JqZWN0LWxpbmthZ2Ugd2FybmluZ3MK d2l0aG91dCB1c2luZyBhbnkgYW5vbnltb3VzIG5hbWVzcGFjZXMuIFRoaXMgY29uZnVzZXMgdXNl cnMgd2hlbiB0aGV5CmdldCBkaWFnbm9zdGljcyB0aGF0IHJlZmVyIHRvIGFuIGFub255bW91cyBu YW1lc3BhY2UgdGhhdCBkb2Vzbid0IGV4aXN0CmluIHRoZWlyIGNvZGUuCgpUaGlzIGNoYW5nZXMg dGhlIGRpYWdub3N0aWMgdG8gc2F5ICJoYXMgaW50ZXJuYWwgbGlua2FnZSIgZm9yIEMrKzExIGFu ZApsYXRlciwgaWYgdGhlIHR5cGUgaXNuJ3QgYWN0dWFsbHkgYSBtZW1iZXIgb2YgdGhlIGFub255 bW91cyBuYW1lc3BhY2UuCk1ha2luZyB0aGF0IGRpc3RpbmN0aW9uIGludm9sdmVkIHJlbmFtaW5n IHRoZSBjdXJyZW50IGRlY2xfYW5vbl9uc19tZW1fcCB0bwpzb21ldGhpbmcgdGhhdCBiZXR0ZXIg ZXhwcmVzc2VzIGl0cyBzZW1hbnRpY3MuCgpGb3IgQysrOTggdGVtcGxhdGUgYXJndW1lbnRzIGRl Y2xhcmVkIHdpdGggJ3N0YXRpYycgYXJlIGlsbC1mb3JtZWQKYW55d2F5LCBzbyB0aGUgb25seSB3 YXkgdGhpcyB3YXJuaW5nIGNhbiBhcmlzZSBpcyB2aWEgYW5vbnltb3VzCm5hbWVzcGFjZXMuIFRo YXQgbWVhbnMgdGhlIGV4aXN0aW5nIHdvcmRpbmcgaXMgYWNjdXJhdGUgZm9yIEMrKzk4IGFuZCBz bwp3ZSBjYW4ga2VlcCBpdC4KCglQUiBjKysvODY0OTEKCmdjYy9jcC9DaGFuZ2VMb2c6CgoJKiBk ZWNsMi5jYyAoY29uc3RyYWluX2NsYXNzX3Zpc2liaWxpdHkpOiBBZGp1c3Qgd29yZGluZyBvZgoJ LVdzdWJvYmplY3QtbGlua2FnZSBmb3IgY2FzZXMgd2hlcmUgYW5vbnltb3VzCgluYW1lc3BhY2Vz IGFyZW4ndCB1c2VkLgoJKiB0cmVlLmNjIChkZWNsX2Fub25fbnNfbWVtX3ApOiBOb3cgb25seSB0 cnVlIGZvciBhY3R1YWwgYW5vbnltb3VzCgluYW1lc3BhY2UgbWVtYmVycywgcmVuYW1lIG9sZCBz ZW1hbnRpY3MgdG8uLi4KCShkZWNsX2ludGVybmFsX2NvbnRleHRfcCk6IC4uLnRoaXMuCgkqIGNw LXRyZWUuaCwgbmFtZS1sb29rdXAuY2MsIHB0LmNjOiBBZGp1c3QuCgpnY2MvdGVzdHN1aXRlL0No YW5nZUxvZzoKCgkqIGcrKy5kZy93YXJuL2Fub255bW91cy1uYW1lc3BhY2UtMy5DOiBVc2Ugc2Vw YXJhdGUgZGctd2FybmluZwoJZGlyZWN0aXZlcyBmb3IgQysrOTggYW5kIGV2ZXJ5dGhpbmcgZWxz ZS4KCSogZysrLmRnL3dhcm4vV3N1Ym9iamVjdC1saW5rYWdlLTUuQzogTmV3IHRlc3QuCi0tLQog Z2NjL2NwL2NwLXRyZWUuaCAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDMgKy0KIGdj Yy9jcC9kZWNsMi5jYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8IDM5ICsrKysrKysr KysrKy0tLS0tLS0KIGdjYy9jcC9uYW1lLWxvb2t1cC5jYyAgICAgICAgICAgICAgICAgICAgICAg ICB8ICAyICstCiBnY2MvY3AvcHQuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgMiArLQogZ2NjL2NwL3RyZWUuY2MgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwg MTIgKysrKystCiAuLi4vZysrLmRnL3dhcm4vV3N1Ym9iamVjdC1saW5rYWdlLTUuQyAgICAgICAg fCAgNyArKysrCiAuLi4vZysrLmRnL3dhcm4vYW5vbnltb3VzLW5hbWVzcGFjZS0zLkMgICAgICAg fCAgMyArLQogNyBmaWxlcyBjaGFuZ2VkLCA0OCBpbnNlcnRpb25zKCspLCAyMCBkZWxldGlvbnMo LSkKIGNyZWF0ZSBtb2RlIDEwMDY0NCBnY2MvdGVzdHN1aXRlL2crKy5kZy93YXJuL1dzdWJvYmpl Y3QtbGlua2FnZS01LkMKCmRpZmYgLS1naXQgYS9nY2MvY3AvY3AtdHJlZS5oIGIvZ2NjL2NwL2Nw LXRyZWUuaAppbmRleCA3YjI4NDA1YzNhYy4uZTczZDA0ZjIxZDggMTAwNjQ0Ci0tLSBhL2djYy9j cC9jcC10cmVlLmgKKysrIGIvZ2NjL2NwL2NwLXRyZWUuaApAQCAtNzg3NCw3ICs3ODc0LDggQEAg ZXh0ZXJuIHRyZWUgcmVwbGFjZV9wbGFjZWhvbGRlcnMJCSh0cmVlLCB0cmVlLCBib29sICogPSBO VUxMKTsKIGV4dGVybiBib29sIGZpbmRfcGxhY2Vob2xkZXJzCQkJKHRyZWUpOwogZXh0ZXJuIHRy ZWUgZ2V0X3R5cGVfZGVjbAkJCSh0cmVlKTsKIGV4dGVybiB0cmVlIGRlY2xfbmFtZXNwYWNlX2Nv bnRleHQJCSh0cmVlKTsKLWV4dGVybiBib29sIGRlY2xfYW5vbl9uc19tZW1fcAkJCShjb25zdF90 cmVlKTsKK2V4dGVybiBib29sIGRlY2xfYW5vbl9uc19tZW1fcAkJCSh0cmVlKTsKK2V4dGVybiBi b29sIGRlY2xfaW50ZXJuYWxfY29udGV4dF9wCQkoY29uc3RfdHJlZSk7CiBleHRlcm4gdHJlZSBs dmFsdWVfdHlwZQkJCQkodHJlZSk7CiBleHRlcm4gdHJlZSBlcnJvcl90eXBlCQkJCSh0cmVlKTsK IGV4dGVybiBpbnQgdmFyYXJnc19mdW5jdGlvbl9wCQkJKGNvbnN0X3RyZWUpOwpkaWZmIC0tZ2l0 IGEvZ2NjL2NwL2RlY2wyLmNjIGIvZ2NjL2NwL2RlY2wyLmNjCmluZGV4IGNkMTg4ODEzYmVlLi42 ODRhMmQwNmRkZSAxMDA2NDQKLS0tIGEvZ2NjL2NwL2RlY2wyLmNjCisrKyBiL2djYy9jcC9kZWNs Mi5jYwpAQCAtMjg1MSw3ICsyODUxLDcgQEAgZGV0ZXJtaW5lX3Zpc2liaWxpdHkgKHRyZWUgZGVj bCkKICAgaWYgKGNsYXNzX3R5cGUpCiAgICAgZGV0ZXJtaW5lX3Zpc2liaWxpdHlfZnJvbV9jbGFz cyAoZGVjbCwgY2xhc3NfdHlwZSk7CiAKLSAgaWYgKGRlY2xfYW5vbl9uc19tZW1fcCAoZGVjbCkp CisgIGlmIChkZWNsX2ludGVybmFsX2NvbnRleHRfcCAoZGVjbCkpCiAgICAgLyogTmFtZXMgaW4g YW4gYW5vbnltb3VzIG5hbWVzcGFjZSBnZXQgaW50ZXJuYWwgbGlua2FnZS4gICovCiAgICAgY29u c3RyYWluX3Zpc2liaWxpdHkgKGRlY2wsIFZJU0lCSUxJVFlfQU5PTiwgZmFsc2UpOwogICBlbHNl IGlmIChUUkVFX0NPREUgKGRlY2wpICE9IFRZUEVfREVDTCkKQEAgLTI5NjUsMTYgKzI5NjUsMjEg QEAgY29uc3RyYWluX2NsYXNzX3Zpc2liaWxpdHkgKHRyZWUgdHlwZSkKIAkJICB7CiAJCSAgICBp ZiAoc2FtZV90eXBlX3AgKFRSRUVfVFlQRSAodCksIG5sdCkpCiAJCSAgICAgIHdhcm5pbmcgKE9Q VF9Xc3Vib2JqZWN0X2xpbmthZ2UsICJcCi0lcVQgaGFzIGEgZmllbGQgJXFEIHdob3NlIHR5cGUg aGFzIG5vIGxpbmthZ2UiLAorJXFUIGhhcyBhIGZpZWxkICVxI0Qgd2hvc2UgdHlwZSBoYXMgbm8g bGlua2FnZSIsCiAJCQkgICAgICAgdHlwZSwgdCk7CiAJCSAgICBlbHNlCiAJCSAgICAgIHdhcm5p bmcgKE9QVF9Xc3Vib2JqZWN0X2xpbmthZ2UsICJcCiAlcVQgaGFzIGEgZmllbGQgJXFEIHdob3Nl IHR5cGUgZGVwZW5kcyBvbiB0aGUgdHlwZSAlcVQgd2hpY2ggaGFzIG5vIGxpbmthZ2UiLAogCQkJ ICAgICAgIHR5cGUsIHQsIG5sdCk7CiAJCSAgfQotCQllbHNlCisJCWVsc2UgaWYgKGN4eF9kaWFs ZWN0ID4gY3h4OTgKKwkJCSAmJiAhZGVjbF9hbm9uX25zX21lbV9wIChmdHlwZSkpCiAJCSAgd2Fy bmluZyAoT1BUX1dzdWJvYmplY3RfbGlua2FnZSwgIlwKLSVxVCBoYXMgYSBmaWVsZCAlcUQgd2hv c2UgdHlwZSB1c2VzIHRoZSBhbm9ueW1vdXMgbmFtZXNwYWNlIiwKKyVxVCBoYXMgYSBmaWVsZCAl cSNEIHdob3NlIHR5cGUgaGFzIGludGVybmFsIGxpbmthZ2UiLAorCQkJICAgdHlwZSwgdCk7CisJ CWVsc2UgLy8gSW4gQysrOTggdGhpcyBjYW4gb25seSBoYXBwZW4gd2l0aCB1bm5hbWVkIG5hbWVz cGFjZXMuCisJCSAgd2FybmluZyAoT1BUX1dzdWJvYmplY3RfbGlua2FnZSwgIlwKKyVxVCBoYXMg YSBmaWVsZCAlcSNEIHdob3NlIHR5cGUgdXNlcyB0aGUgYW5vbnltb3VzIG5hbWVzcGFjZSIsCiAJ CQkgICB0eXBlLCB0KTsKIAkgICAgICB9CiAJICB9CkBAIC0yOTg5LDI4ICsyOTk0LDM0IEBAIGNv bnN0cmFpbl9jbGFzc192aXNpYmlsaXR5ICh0cmVlIHR5cGUpCiAgIGJpbmZvID0gVFlQRV9CSU5G TyAodHlwZSk7CiAgIGZvciAoaSA9IDA7IEJJTkZPX0JBU0VfSVRFUkFURSAoYmluZm8sIGksIHQp OyArK2kpCiAgICAgewotICAgICAgaW50IHN1YnZpcyA9IHR5cGVfdmlzaWJpbGl0eSAoVFJFRV9U WVBFICh0KSk7CisgICAgICB0cmVlIGJ0eXBlID0gQklORk9fVFlQRSAodCk7CisgICAgICBpbnQg c3VidmlzID0gdHlwZV92aXNpYmlsaXR5IChidHlwZSk7CiAKICAgICAgIGlmIChzdWJ2aXMgPT0g VklTSUJJTElUWV9BTk9OKQogICAgICAgICB7CiAJICBpZiAoIWluX21haW5faW5wdXRfY29udGV4 dCgpKQogCSAgICB7Ci0JICAgICAgdHJlZSBubHQgPSBub19saW5rYWdlX2NoZWNrIChUUkVFX1RZ UEUgKHQpLCAvKnJlbGF4ZWRfcD0qL2ZhbHNlKTsKKwkgICAgICB0cmVlIG5sdCA9IG5vX2xpbmth Z2VfY2hlY2sgKGJ0eXBlLCAvKnJlbGF4ZWRfcD0qL2ZhbHNlKTsKIAkgICAgICBpZiAobmx0KQog CQl7Ci0JCSAgaWYgKHNhbWVfdHlwZV9wIChUUkVFX1RZUEUgKHQpLCBubHQpKQorCQkgIGlmIChz YW1lX3R5cGVfcCAoYnR5cGUsIG5sdCkpCiAJCSAgICB3YXJuaW5nIChPUFRfV3N1Ym9iamVjdF9s aW5rYWdlLCAiXAotJXFUIGhhcyBhIGJhc2UgJXFUIHdob3NlIHR5cGUgaGFzIG5vIGxpbmthZ2Ui LAotCQkJICAgICB0eXBlLCBUUkVFX1RZUEUgKHQpKTsKKyVxVCBoYXMgYSBiYXNlICVxVCB3aGlj aCBoYXMgbm8gbGlua2FnZSIsCisJCQkgICAgIHR5cGUsIGJ0eXBlKTsKIAkJICBlbHNlCiAJCSAg ICB3YXJuaW5nIChPUFRfV3N1Ym9iamVjdF9saW5rYWdlLCAiXAotJXFUIGhhcyBhIGJhc2UgJXFU IHdob3NlIHR5cGUgZGVwZW5kcyBvbiB0aGUgdHlwZSAlcVQgd2hpY2ggaGFzIG5vIGxpbmthZ2Ui LAotCQkJICAgICB0eXBlLCBUUkVFX1RZUEUgKHQpLCBubHQpOworJXFUIGhhcyBhIGJhc2UgJXFU IHdoaWNoIGRlcGVuZHMgb24gdGhlIHR5cGUgJXFUIHdoaWNoIGhhcyBubyBsaW5rYWdlIiwKKwkJ CSAgICAgdHlwZSwgYnR5cGUsIG5sdCk7CiAJCX0KLQkgICAgICBlbHNlCisJICAgICAgZWxzZSBp ZiAoY3h4X2RpYWxlY3QgPiBjeHg5OAorCQkgICAgICAgJiYgIWRlY2xfYW5vbl9uc19tZW1fcCAo YnR5cGUpKQogCQl3YXJuaW5nIChPUFRfV3N1Ym9iamVjdF9saW5rYWdlLCAiXAotJXFUIGhhcyBh IGJhc2UgJXFUIHdob3NlIHR5cGUgdXNlcyB0aGUgYW5vbnltb3VzIG5hbWVzcGFjZSIsCi0JCQkg dHlwZSwgVFJFRV9UWVBFICh0KSk7CislcVQgaGFzIGEgYmFzZSAlcVQgd2hpY2ggaGFzIGludGVy bmFsIGxpbmthZ2UiLAorCQkJIHR5cGUsIGJ0eXBlKTsKKwkgICAgICBlbHNlIC8vIEluIEMrKzk4 IHRoaXMgY2FuIG9ubHkgaGFwcGVuIHdpdGggdW5uYW1lZCBuYW1lc3BhY2VzLgorCQl3YXJuaW5n IChPUFRfV3N1Ym9iamVjdF9saW5rYWdlLCAiXAorJXFUIGhhcyBhIGJhc2UgJXFUIHdoaWNoIHVz ZXMgdGhlIGFub255bW91cyBuYW1lc3BhY2UiLAorCQkJIHR5cGUsIGJ0eXBlKTsKIAkgICAgfQog CX0KICAgICAgIGVsc2UgaWYgKHZpcyA8IFZJU0lCSUxJVFlfSElEREVOCmRpZmYgLS1naXQgYS9n Y2MvY3AvbmFtZS1sb29rdXAuY2MgYi9nY2MvY3AvbmFtZS1sb29rdXAuY2MKaW5kZXggZjg5YTFk YzQxMTEuLjY5ZDU1NWRkZjFmIDEwMDY0NAotLS0gYS9nY2MvY3AvbmFtZS1sb29rdXAuY2MKKysr IGIvZ2NjL2NwL25hbWUtbG9va3VwLmNjCkBAIC00MDIsNyArNDAyLDcgQEAgYWRkX2RlY2xfdG9f bGV2ZWwgKGNwX2JpbmRpbmdfbGV2ZWwgKmIsIHRyZWUgZGVjbCkKICAgICAgICYmICgoVkFSX1Ag KGRlY2wpICYmIChUUkVFX1NUQVRJQyAoZGVjbCkgfHwgREVDTF9FWFRFUk5BTCAoZGVjbCkpKQog CSAgfHwgKFRSRUVfQ09ERSAoZGVjbCkgPT0gRlVOQ1RJT05fREVDTAogCSAgICAgICYmICghVFJF RV9QVUJMSUMgKGRlY2wpCi0JCSAgfHwgZGVjbF9hbm9uX25zX21lbV9wIChkZWNsKQorCQkgIHx8 IGRlY2xfaW50ZXJuYWxfY29udGV4dF9wIChkZWNsKQogCQkgIHx8IERFQ0xfREVDTEFSRURfSU5M SU5FX1AgKGRlY2wpKSkpKQogICAgIHZlY19zYWZlX3B1c2ggKHN0YXRpY19kZWNscywgZGVjbCk7 CiB9CmRpZmYgLS1naXQgYS9nY2MvY3AvcHQuY2MgYi9nY2MvY3AvcHQuY2MKaW5kZXggYzVmYzBm MWVhYjguLmFkOWMyZjliMTgwIDEwMDY0NAotLS0gYS9nY2MvY3AvcHQuY2MKKysrIGIvZ2NjL2Nw L3B0LmNjCkBAIC0yNTAyNSw3ICsyNTAyNSw3IEBAIG1hcmtfZGVjbF9pbnN0YW50aWF0ZWQgKHRy ZWUgcmVzdWx0LCBpbnQgZXh0ZXJuX3ApCiAgICAgcmV0dXJuOwogCiAgIC8qIEZvciBhbm9ueW1v dXMgbmFtZXNwYWNlIHdlIGRvbid0IG5lZWQgdG8gZG8gYW55dGhpbmcuICAqLwotICBpZiAoZGVj bF9hbm9uX25zX21lbV9wIChyZXN1bHQpKQorICBpZiAoZGVjbF9pbnRlcm5hbF9jb250ZXh0X3Ag KHJlc3VsdCkpCiAgICAgewogICAgICAgZ2NjX2Fzc2VydCAoIVRSRUVfUFVCTElDIChyZXN1bHQp KTsKICAgICAgIHJldHVybjsKZGlmZiAtLWdpdCBhL2djYy9jcC90cmVlLmNjIGIvZ2NjL2NwL3Ry ZWUuY2MKaW5kZXggYzY3OGUzYjljNGMuLjZkZTIwOGE5MDliIDEwMDY0NAotLS0gYS9nY2MvY3Av dHJlZS5jYworKysgYi9nY2MvY3AvdHJlZS5jYwpAQCAtMjk2OCw3ICsyOTY4LDcgQEAgdmVyaWZ5 X3N0bXRfdHJlZSAodHJlZSB0KQogLyogQ2hlY2sgaWYgdGhlIHR5cGUgVCBkZXBlbmRzIG9uIGEg dHlwZSB3aXRoIG5vIGxpbmthZ2UgYW5kIGlmIHNvLAogICAgcmV0dXJuIGl0LiAgSWYgUkVMQVhF RF9QIHRoZW4gZG8gbm90IGNvbnNpZGVyIGEgY2xhc3MgdHlwZSBkZWNsYXJlZAogICAgd2l0aGlu IGEgdmFndWUtbGlua2FnZSBmdW5jdGlvbiB0byBoYXZlIG5vIGxpbmthZ2UuICBSZW1lbWJlcjoK LSAgIG5vLWxpbmthZ2UgaXMgbm90IHRoZSBzYW1lIGFzIGludGVybmFsLWxpbmthZ2UqLworICAg bm8tbGlua2FnZSBpcyBub3QgdGhlIHNhbWUgYXMgaW50ZXJuYWwtbGlua2FnZS4gICovCiAKIHRy ZWUKIG5vX2xpbmthZ2VfY2hlY2sgKHRyZWUgdCwgYm9vbCByZWxheGVkX3ApCkBAIC0zODE3LDcg KzM4MTcsMTUgQEAgZGVjbF9uYW1lc3BhY2VfY29udGV4dCAodHJlZSBkZWNsKQogICAgbmVzdGVk LCBvciBmYWxzZSBvdGhlcndpc2UuICAqLwogCiBib29sCi1kZWNsX2Fub25fbnNfbWVtX3AgKGNv bnN0X3RyZWUgZGVjbCkKK2RlY2xfYW5vbl9uc19tZW1fcCAodHJlZSBkZWNsKQoreworICByZXR1 cm4gIVRSRUVfUFVCTElDIChkZWNsX25hbWVzcGFjZV9jb250ZXh0IChkZWNsKSk7Cit9CisKKy8q IFJldHVybnMgdHJ1ZSBpZiB0aGUgZW5jbG9zaW5nIHNjb3BlIG9mIERFQ0wgaGFzIGludGVybmFs IG9yIG5vIGxpbmthZ2UuICAqLworCitib29sCitkZWNsX2ludGVybmFsX2NvbnRleHRfcCAoY29u c3RfdHJlZSBkZWNsKQogewogICB3aGlsZSAoVFJFRV9DT0RFIChkZWNsKSAhPSBOQU1FU1BBQ0Vf REVDTCkKICAgICB7CmRpZmYgLS1naXQgYS9nY2MvdGVzdHN1aXRlL2crKy5kZy93YXJuL1dzdWJv YmplY3QtbGlua2FnZS01LkMgYi9nY2MvdGVzdHN1aXRlL2crKy5kZy93YXJuL1dzdWJvYmplY3Qt bGlua2FnZS01LkMKbmV3IGZpbGUgbW9kZSAxMDA2NDQKaW5kZXggMDAwMDAwMDAwMDAuLmUyYzJm ZDkxNjg4Ci0tLSAvZGV2L251bGwKKysrIGIvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvd2Fybi9Xc3Vi b2JqZWN0LWxpbmthZ2UtNS5DCkBAIC0wLDAgKzEsNyBAQAorLy8gUFIgYysrLzg2NDkxCisvLyB7 IGRnLWRvIGNvbXBpbGUgeyB0YXJnZXQgYysrMTEgfSB9CisKK3RlbXBsYXRlIDxpbnQgKj4gc3Ry dWN0IE5Ue307CisjbGluZSA2ICJ0TS5DIgorc3RhdGljIGludCBkOworc3RydWN0IEQgOiBOVDwm ZD4ge307CQkvLyB7IGRnLXdhcm5pbmcgImludGVybmFsIGxpbmthZ2UiIH0KZGlmZiAtLWdpdCBh L2djYy90ZXN0c3VpdGUvZysrLmRnL3dhcm4vYW5vbnltb3VzLW5hbWVzcGFjZS0zLkMgYi9nY2Mv dGVzdHN1aXRlL2crKy5kZy93YXJuL2Fub255bW91cy1uYW1lc3BhY2UtMy5DCmluZGV4IDhiNzJh YmRmNWQxLi5jZTU3NDViMjVmMCAxMDA2NDQKLS0tIGEvZ2NjL3Rlc3RzdWl0ZS9nKysuZGcvd2Fy bi9hbm9ueW1vdXMtbmFtZXNwYWNlLTMuQworKysgYi9nY2MvdGVzdHN1aXRlL2crKy5kZy93YXJu L2Fub255bW91cy1uYW1lc3BhY2UtMy5DCkBAIC03LDcgKzcsOCBAQAogc3RydWN0IEIgeyBzdGQ6 OmF1dG9fcHRyPEE+IHA7IH07CiAKICNsaW5lIDEwICJmb28uQyIKLXN0cnVjdCBDCQkgICAvLyB7 IGRnLXdhcm5pbmcgInVzZXMgdGhlIGFub255bW91cyBuYW1lc3BhY2UiIH0KK3N0cnVjdCBDIC8v IHsgZGctd2FybmluZyAiaGFzIGludGVybmFsIGxpbmthZ2UiICIiIHsgdGFyZ2V0IGMrKzExIH0g fQorLy8geyBkZy13YXJuaW5nICJ1c2VzIHRoZSBhbm9ueW1vdXMgbmFtZXNwYWNlIiAiIiB7IHRh cmdldCBjKys5OF9vbmx5IH0gLi0xIH0KIHsKICAgc3RkOjphdXRvX3B0cjxBPiBwOwogfTsKLS0g CjIuMzEuMQoK --------------Ox115d4oYHxIYOL9TIingD6E--