From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 44653 invoked by alias); 5 Nov 2019 23:53:59 -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 44629 invoked by uid 89); 5 Nov 2019 23:53:59 -0000 Authentication-Results: sourceware.org; auth=none X-Spam-SWARE-Status: No, score=-16.0 required=5.0 tests=AWL,BAYES_00,BODY_8BITS,GARBLED_BODY,GIT_PATCH_0,GIT_PATCH_1,GIT_PATCH_2,GIT_PATCH_3,KAM_SHORT,SPF_PASS autolearn=ham version=3.3.1 spammy=8:nt, 8:_m, 8:od, september X-HELO: us-smtp-delivery-1.mimecast.com Received: from us-smtp-1.mimecast.com (HELO us-smtp-delivery-1.mimecast.com) (205.139.110.61) by sourceware.org (qpsmtpd/0.93/v0.84-503-g423c35a) with ESMTP; Tue, 05 Nov 2019 23:53:57 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=redhat.com; s=mimecast20190719; t=1572998035; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=4XYkGV7ZLA3S5dpsf4o0ryn5oScD5P9VjCKiReWZNy4=; b=c/QxQW9OKspvSOupiAKSTJlAa6g5fGJtKwPO+jH0wjk4wiNk9xL1+IThCuREdFZPRSd4+m iLE6J3Yq7jzgsuY6A9hVMCj8ecNbJ+4jpqMmIGflgQnDFzzyY+xvsBHhVsAwNgzZhw8bAw 3GojpI7FClZEFNC1upwIaVM6ksFx40M= Received: from mail-ot1-f72.google.com (mail-ot1-f72.google.com [209.85.210.72]) (Using TLS) by relay.mimecast.com with ESMTP id us-mta-166-efjCE8ZpOFufoSJvVR76pA-1; Tue, 05 Nov 2019 18:53:53 -0500 Received: by mail-ot1-f72.google.com with SMTP id w11so3548425otq.6 for ; Tue, 05 Nov 2019 15:53:53 -0800 (PST) MIME-Version: 1.0 References: <20190916043328.3739-1-jason@redhat.com> <20190916043328.3739-2-jason@redhat.com> In-Reply-To: From: Jason Merrill Date: Tue, 05 Nov 2019 23:53:00 -0000 Message-ID: Subject: Re: [C++ PATCH 2/4] Fix conversions for built-in operator overloading candidates. To: JiangNing OS Cc: "gcc-patches@gcc.gnu.org" , Feng Xue OS X-Mimecast-Spam-Score: 0 Content-Type: multipart/mixed; boundary="000000000000ee74380596a2240c" X-IsSubscribed: yes X-SW-Source: 2019-11/txt/msg00352.txt.bz2 --000000000000ee74380596a2240c Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Content-length: 7867 I'm applying this patch again now, this time with a tweak to expmed.c to prevent the false positive warning from breaking bootstrap. I don't see any problem in the gimple output, so the bug must be in the middle-end somewhere. On Thu, Sep 19, 2019 at 8:43 PM Jason Merrill wrote: > > I've reverted this patch for the moment. > > On Wed, Sep 18, 2019 at 8:19 PM JiangNing OS > wrote: > > > > Hi Jason, > > > > This commit caused boot-strap failure on aarch64. Is it a bug? Can this= be fixed ASAP? > > > > ../../gcc/gcc/expmed.c:5602:19: error: =EF=BF=BD=EF=BF=BD=EF=BF=BDint_m= ode=EF=BF=BD=EF=BF=BD=EF=BF=BD may be used uninitialized in this function [= -Werror=3Dmaybe-uninitialized] > > 5602 | scalar_int_mode int_mode; > > | ^~~~~~~~ > > > > Thanks, > > -Jiangning > > > > > -----Original Message----- > > > From: gcc-patches-owner@gcc.gnu.org > > > On Behalf Of Jason Merrill > > > Sent: Monday, September 16, 2019 12:33 PM > > > To: gcc-patches@gcc.gnu.org > > > Subject: [C++ PATCH 2/4] Fix conversions for built-in operator overlo= ading > > > candidates. > > > > > > While working on C++20 operator<=3D>, I noticed that build_new_op_1 w= as > > > doing too much conversion when a built-in candidate was selected; the > > > standard says it should only perform user-defined conversions, and th= en > > > leave the normal operator semantics to handle any standard conversion= s. > > > This is important for operator<=3D> because a comparison of two diffe= rent > > > unscoped enums is ill-formed; if we promote the enums to int here, > > > cp_build_binary_op never gets to see the original operand types, so w= e can't > > > give the error. > > > > > > Tested x86_64-pc-linux-gnu, applying to trunk. > > > > > > * call.c (build_new_op_1): Don't apply any standard conversions= to > > > the operands of a built-in operator. Don't suppress conversion= s in > > > cp_build_unary_op. > > > * typeck.c (cp_build_unary_op): Do integral promotions for enum= s. > > > --- > > > gcc/cp/call.c | 51 ++++++++++++++++++++++++----------------------= -- > > > gcc/cp/typeck.c | 4 ++-- > > > gcc/cp/ChangeLog | 7 +++++++ > > > 3 files changed, 34 insertions(+), 28 deletions(-) > > > > > > diff --git a/gcc/cp/call.c b/gcc/cp/call.c index c3045d948c5..457fa66= 05c2 > > > 100644 > > > --- a/gcc/cp/call.c > > > +++ b/gcc/cp/call.c > > > @@ -6139,41 +6139,40 @@ build_new_op_1 (const op_location_t &loc, > > > enum tree_code code, int flags, > > > break; > > > } > > > > > > - /* We need to strip any leading REF_BIND so that bitfields > > > - don't cause errors. This should not remove any important > > > - conversions, because builtins don't apply to class > > > - objects directly. */ > > > + /* "If a built-in candidate is selected by overload resolutio= n, the > > > + operands of class type are converted to the types of the > > > + corresponding parameters of the selected operation functio= n, > > > + except that the second standard conversion sequence of a > > > + user-defined conversion sequence (12.3.3.1.2) is not appli= ed." > > > +*/ > > > conv =3D cand->convs[0]; > > > - if (conv->kind =3D=3D ck_ref_bind) > > > - conv =3D next_conversion (conv); > > > - arg1 =3D convert_like (conv, arg1, complain); > > > + if (conv->user_conv_p) > > > + { > > > + while (conv->kind !=3D ck_user) > > > + conv =3D next_conversion (conv); > > > + arg1 =3D convert_like (conv, arg1, complain); > > > + } > > > > > > if (arg2) > > > { > > > conv =3D cand->convs[1]; > > > - if (conv->kind =3D=3D ck_ref_bind) > > > - conv =3D next_conversion (conv); > > > - else > > > - arg2 =3D decay_conversion (arg2, complain); > > > - > > > - /* We need to call warn_logical_operator before > > > - converting arg2 to a boolean_type, but after > > > - decaying an enumerator to its value. */ > > > - if (complain & tf_warning) > > > - warn_logical_operator (loc, code, boolean_type_node, > > > - code_orig_arg1, arg1, > > > - code_orig_arg2, arg2); > > > - > > > - arg2 =3D convert_like (conv, arg2, complain); > > > + if (conv->user_conv_p) > > > + { > > > + while (conv->kind !=3D ck_user) > > > + conv =3D next_conversion (conv); > > > + arg2 =3D convert_like (conv, arg2, complain); > > > + } > > > } > > > + > > > if (arg3) > > > { > > > conv =3D cand->convs[2]; > > > - if (conv->kind =3D=3D ck_ref_bind) > > > - conv =3D next_conversion (conv); > > > - convert_like (conv, arg3, complain); > > > + if (conv->user_conv_p) > > > + { > > > + while (conv->kind !=3D ck_user) > > > + conv =3D next_conversion (conv); > > > + arg3 =3D convert_like (conv, arg3, complain); > > > + } > > > } > > > - > > > } > > > } > > > > > > @@ -6241,7 +6240,7 @@ build_new_op_1 (const op_location_t &loc, enum > > > tree_code code, int flags, > > > case REALPART_EXPR: > > > case IMAGPART_EXPR: > > > case ABS_EXPR: > > > - return cp_build_unary_op (code, arg1, candidates !=3D 0, compl= ain); > > > + return cp_build_unary_op (code, arg1, false, complain); > > > > > > case ARRAY_REF: > > > return cp_build_array_ref (input_location, arg1, arg2, complai= n); diff --git > > > a/gcc/cp/typeck.c b/gcc/cp/typeck.c index 70094d1b426..620f2c9afdf 10= 0644 > > > --- a/gcc/cp/typeck.c > > > +++ b/gcc/cp/typeck.c > > > @@ -6242,7 +6242,7 @@ cp_build_unary_op (enum tree_code code, tree > > > xarg, bool noconvert, > > > : _("wrong type argument to unary plus")); > > > else > > > { > > > - if (!noconvert && CP_INTEGRAL_TYPE_P (TREE_TYPE (arg))) > > > + if (!noconvert && INTEGRAL_OR_ENUMERATION_TYPE_P > > > (TREE_TYPE > > > +(arg))) > > > arg =3D cp_perform_integral_promotions (arg, complain); > > > > > > /* Make sure the result is not an lvalue: a unary plus or m= inus @@ > > > -6267,7 +6267,7 @@ cp_build_unary_op (enum tree_code code, tree xarg, > > > bool noconvert, > > > | > > > WANT_VECTOR_OR_COMPLEX, > > > arg, true))) > > > errstring =3D _("wrong type argument to bit-complement"); > > > - else if (!noconvert && CP_INTEGRAL_TYPE_P (TREE_TYPE (arg))) > > > + else if (!noconvert && INTEGRAL_OR_ENUMERATION_TYPE_P > > > (TREE_TYPE > > > + (arg))) > > > { > > > /* Warn if the expression has boolean value. */ > > > if (TREE_CODE (TREE_TYPE (arg)) =3D=3D BOOLEAN_TYPE diff --git > > > a/gcc/cp/ChangeLog b/gcc/cp/ChangeLog index e92d49f1b76..a03a428109b > > > 100644 > > > --- a/gcc/cp/ChangeLog > > > +++ b/gcc/cp/ChangeLog > > > @@ -1,3 +1,10 @@ > > > +2019-09-15 Jason Merrill > > > + > > > + * call.c (build_new_op_1): Don't apply any standard conversions= to > > > + the operands of a built-in operator. Don't suppress conversion= s in > > > + cp_build_unary_op. > > > + * typeck.c (cp_build_unary_op): Do integral promotions for enum= s. > > > + > > > 2019-09-15 Marek Polacek > > > > > > PR c++/91740 - ICE with constexpr call and ?: in ARRAY_REF. > > > -- > > > 2.21.0 > > --000000000000ee74380596a2240c Content-Type: text/x-patch; charset=WINDOWS-1252; name=conv.diff Content-Disposition: attachment; filename="conv.diff" Content-Transfer-Encoding: base64 Content-ID: X-Attachment-Id: f_k2midr7w0 Content-length: 8414 Y29tbWl0IGI3OTI0MDk5Y2U0OTcwNGM5OGUxOWY3Mzg1ZmE4ZTdkYWVjM2Jl YjIKQXV0aG9yOiBqYXNvbiA8amFzb25AMTM4YmM3NWQtMGQwNC0wNDEwLTk2 MWYtODJlZTcyYjA1NGE0PgpEYXRlOiAgIE1vbiBTZXAgMTYgMDQ6MzQ6MTgg MjAxOSArMDAwMAoKICAgIEZpeCBjb252ZXJzaW9ucyBmb3IgYnVpbHQtaW4g b3BlcmF0b3Igb3ZlcmxvYWRpbmcgY2FuZGlkYXRlcy4KICAgIAogICAgV2hp bGUgd29ya2luZyBvbiBDKysyMCBvcGVyYXRvcjw9PiwgSSBub3RpY2VkIHRo YXQgYnVpbGRfbmV3X29wXzEgd2FzIGRvaW5nCiAgICB0b28gbXVjaCBjb252 ZXJzaW9uIHdoZW4gYSBidWlsdC1pbiBjYW5kaWRhdGUgd2FzIHNlbGVjdGVk OyB0aGUgc3RhbmRhcmQKICAgIHNheXMgaXQgc2hvdWxkIG9ubHkgcGVyZm9y bSB1c2VyLWRlZmluZWQgY29udmVyc2lvbnMsIGFuZCB0aGVuIGxlYXZlIHRo ZQogICAgbm9ybWFsIG9wZXJhdG9yIHNlbWFudGljcyB0byBoYW5kbGUgYW55 IHN0YW5kYXJkIGNvbnZlcnNpb25zLiAgVGhpcyBpcwogICAgaW1wb3J0YW50 IGZvciBvcGVyYXRvcjw9PiBiZWNhdXNlIGEgY29tcGFyaXNvbiBvZiB0d28g ZGlmZmVyZW50IHVuc2NvcGVkCiAgICBlbnVtcyBpcyBpbGwtZm9ybWVkOyBp ZiB3ZSBwcm9tb3RlIHRoZSBlbnVtcyB0byBpbnQgaGVyZSwgY3BfYnVpbGRf YmluYXJ5X29wCiAgICBuZXZlciBnZXRzIHRvIHNlZSB0aGUgb3JpZ2luYWwg b3BlcmFuZCB0eXBlcywgc28gd2UgY2FuJ3QgZ2l2ZSB0aGUgZXJyb3IuCiAg ICAKICAgIEknbSBhbHNvIGRpc2FibGluZyAtV21heWJlLXVuaW5pdGlhbGl6 ZWQgZm9yIGV4cG1lZC5jIHRvIGF2b2lkIHRoZSBib290c3RyYXAKICAgIGZh aWx1cmUgZnJvbSB0aGUgbGFzdCB0aW1lIEkgYXBwbGllZCB0aGlzIHBhdGNo LgogICAgCiAgICAgICAgICAgICogY2FsbC5jIChidWlsZF9uZXdfb3BfMSk6 IERvbid0IGFwcGx5IGFueSBzdGFuZGFyZCBjb252ZXJzaW9ucyB0bwogICAg ICAgICAgICB0aGUgb3BlcmFuZHMgb2YgYSBidWlsdC1pbiBvcGVyYXRvci4g IERvbid0IHN1cHByZXNzIGNvbnZlcnNpb25zIGluCiAgICAgICAgICAgIGNw X2J1aWxkX3VuYXJ5X29wLgogICAgICAgICAgICAqIHR5cGVjay5jIChjcF9i dWlsZF91bmFyeV9vcCk6IERvIGludGVncmFsIHByb21vdGlvbnMgZm9yIGVu dW1zLgogICAgCiAgICAgICAgICAgIFBSIHRyZWUtb3B0aW1pemF0aW9uLzkx ODI1CiAgICAgICAgICAgICogZXhwbWVkLmM6IFJlZHVjZSAtV21heWJlLXVu aW5pdGlhbGl6ZWQgdG8gd2FybmluZy4KCmRpZmYgLS1naXQgYS9nY2MvY3Av Y2FsbC5jIGIvZ2NjL2NwL2NhbGwuYwppbmRleCAyYTFkYTNjYzRlMS4uMzkw YTRjNTgxZTIgMTAwNjQ0Ci0tLSBhL2djYy9jcC9jYWxsLmMKKysrIGIvZ2Nj L2NwL2NhbGwuYwpAQCAtNjE1Niw0MSArNjE1Niw0MCBAQCBidWlsZF9uZXdf b3BfMSAoY29uc3Qgb3BfbG9jYXRpb25fdCAmbG9jLCBlbnVtIHRyZWVfY29k ZSBjb2RlLCBpbnQgZmxhZ3MsCiAJICAgICAgYnJlYWs7CiAJICAgIH0KIAot CSAgLyogV2UgbmVlZCB0byBzdHJpcCBhbnkgbGVhZGluZyBSRUZfQklORCBz byB0aGF0IGJpdGZpZWxkcwotCSAgICAgZG9uJ3QgY2F1c2UgZXJyb3JzLiAg VGhpcyBzaG91bGQgbm90IHJlbW92ZSBhbnkgaW1wb3J0YW50Ci0JICAgICBj b252ZXJzaW9ucywgYmVjYXVzZSBidWlsdGlucyBkb24ndCBhcHBseSB0byBj bGFzcwotCSAgICAgb2JqZWN0cyBkaXJlY3RseS4gICovCisJICAvKiAiSWYg YSBidWlsdC1pbiBjYW5kaWRhdGUgaXMgc2VsZWN0ZWQgYnkgb3ZlcmxvYWQg cmVzb2x1dGlvbiwgdGhlCisJICAgICBvcGVyYW5kcyBvZiBjbGFzcyB0eXBl IGFyZSBjb252ZXJ0ZWQgdG8gdGhlIHR5cGVzIG9mIHRoZQorCSAgICAgY29y cmVzcG9uZGluZyBwYXJhbWV0ZXJzIG9mIHRoZSBzZWxlY3RlZCBvcGVyYXRp b24gZnVuY3Rpb24sCisJICAgICBleGNlcHQgdGhhdCB0aGUgc2Vjb25kIHN0 YW5kYXJkIGNvbnZlcnNpb24gc2VxdWVuY2Ugb2YgYQorCSAgICAgdXNlci1k ZWZpbmVkIGNvbnZlcnNpb24gc2VxdWVuY2UgKDEyLjMuMy4xLjIpIGlzIG5v dCBhcHBsaWVkLiIgICovCiAJICBjb252ID0gY2FuZC0+Y29udnNbMF07Ci0J ICBpZiAoY29udi0+a2luZCA9PSBja19yZWZfYmluZCkKLQkgICAgY29udiA9 IG5leHRfY29udmVyc2lvbiAoY29udik7Ci0JICBhcmcxID0gY29udmVydF9s aWtlIChjb252LCBhcmcxLCBjb21wbGFpbik7CisJICBpZiAoY29udi0+dXNl cl9jb252X3ApCisJICAgIHsKKwkgICAgICB3aGlsZSAoY29udi0+a2luZCAh PSBja191c2VyKQorCQljb252ID0gbmV4dF9jb252ZXJzaW9uIChjb252KTsK KwkgICAgICBhcmcxID0gY29udmVydF9saWtlIChjb252LCBhcmcxLCBjb21w bGFpbik7CisJICAgIH0KIAogCSAgaWYgKGFyZzIpCiAJICAgIHsKIAkgICAg ICBjb252ID0gY2FuZC0+Y29udnNbMV07Ci0JICAgICAgaWYgKGNvbnYtPmtp bmQgPT0gY2tfcmVmX2JpbmQpCi0JCWNvbnYgPSBuZXh0X2NvbnZlcnNpb24g KGNvbnYpOwotCSAgICAgIGVsc2UKLQkJYXJnMiA9IGRlY2F5X2NvbnZlcnNp b24gKGFyZzIsIGNvbXBsYWluKTsKLQotCSAgICAgIC8qIFdlIG5lZWQgdG8g Y2FsbCB3YXJuX2xvZ2ljYWxfb3BlcmF0b3IgYmVmb3JlCi0JCSBjb252ZXJ0 aW5nIGFyZzIgdG8gYSBib29sZWFuX3R5cGUsIGJ1dCBhZnRlcgotCQkgZGVj YXlpbmcgYW4gZW51bWVyYXRvciB0byBpdHMgdmFsdWUuICAqLwotCSAgICAg IGlmIChjb21wbGFpbiAmIHRmX3dhcm5pbmcpCi0JCXdhcm5fbG9naWNhbF9v cGVyYXRvciAobG9jLCBjb2RlLCBib29sZWFuX3R5cGVfbm9kZSwKLQkJCQkg ICAgICAgY29kZV9vcmlnX2FyZzEsIGFyZzEsCi0JCQkJICAgICAgIGNvZGVf b3JpZ19hcmcyLCBhcmcyKTsKLQotCSAgICAgIGFyZzIgPSBjb252ZXJ0X2xp a2UgKGNvbnYsIGFyZzIsIGNvbXBsYWluKTsKKwkgICAgICBpZiAoY29udi0+ dXNlcl9jb252X3ApCisJCXsKKwkJICB3aGlsZSAoY29udi0+a2luZCAhPSBj a191c2VyKQorCQkgICAgY29udiA9IG5leHRfY29udmVyc2lvbiAoY29udik7 CisJCSAgYXJnMiA9IGNvbnZlcnRfbGlrZSAoY29udiwgYXJnMiwgY29tcGxh aW4pOworCQl9CiAJICAgIH0KKwogCSAgaWYgKGFyZzMpCiAJICAgIHsKIAkg ICAgICBjb252ID0gY2FuZC0+Y29udnNbMl07Ci0JICAgICAgaWYgKGNvbnYt PmtpbmQgPT0gY2tfcmVmX2JpbmQpCi0JCWNvbnYgPSBuZXh0X2NvbnZlcnNp b24gKGNvbnYpOwotCSAgICAgIGNvbnZlcnRfbGlrZSAoY29udiwgYXJnMywg Y29tcGxhaW4pOworCSAgICAgIGlmIChjb252LT51c2VyX2NvbnZfcCkKKwkJ eworCQkgIHdoaWxlIChjb252LT5raW5kICE9IGNrX3VzZXIpCisJCSAgICBj b252ID0gbmV4dF9jb252ZXJzaW9uIChjb252KTsKKwkJICBhcmczID0gY29u dmVydF9saWtlIChjb252LCBhcmczLCBjb21wbGFpbik7CisJCX0KIAkgICAg fQotCiAJfQogICAgIH0KIApAQCAtNjI1OCw3ICs2MjU3LDcgQEAgYnVpbGRf bmV3X29wXzEgKGNvbnN0IG9wX2xvY2F0aW9uX3QgJmxvYywgZW51bSB0cmVl X2NvZGUgY29kZSwgaW50IGZsYWdzLAogICAgIGNhc2UgUkVBTFBBUlRfRVhQ UjoKICAgICBjYXNlIElNQUdQQVJUX0VYUFI6CiAgICAgY2FzZSBBQlNfRVhQ UjoKLSAgICAgIHJldHVybiBjcF9idWlsZF91bmFyeV9vcCAoY29kZSwgYXJn MSwgY2FuZGlkYXRlcyAhPSAwLCBjb21wbGFpbik7CisgICAgICByZXR1cm4g Y3BfYnVpbGRfdW5hcnlfb3AgKGNvZGUsIGFyZzEsIGZhbHNlLCBjb21wbGFp bik7CiAKICAgICBjYXNlIEFSUkFZX1JFRjoKICAgICAgIHJldHVybiBjcF9i dWlsZF9hcnJheV9yZWYgKGlucHV0X2xvY2F0aW9uLCBhcmcxLCBhcmcyLCBj b21wbGFpbik7CmRpZmYgLS1naXQgYS9nY2MvY3AvdHlwZWNrLmMgYi9nY2Mv Y3AvdHlwZWNrLmMKaW5kZXggYmYyNTAyYTM2ODYuLjUwMjQwNTM3OTM4IDEw MDY0NAotLS0gYS9nY2MvY3AvdHlwZWNrLmMKKysrIGIvZ2NjL2NwL3R5cGVj ay5jCkBAIC02Mjk4LDcgKzYyOTgsNyBAQCBjcF9idWlsZF91bmFyeV9vcCAo ZW51bSB0cmVlX2NvZGUgY29kZSwgdHJlZSB4YXJnLCBib29sIG5vY29udmVy dCwKIAkJICAgICAgIDogXygid3JvbmcgdHlwZSBhcmd1bWVudCB0byB1bmFy eSBwbHVzIikpOwogCWVsc2UKIAkgIHsKLQkgICAgaWYgKCFub2NvbnZlcnQg JiYgQ1BfSU5URUdSQUxfVFlQRV9QIChUUkVFX1RZUEUgKGFyZykpKQorCSAg ICBpZiAoIW5vY29udmVydCAmJiBJTlRFR1JBTF9PUl9FTlVNRVJBVElPTl9U WVBFX1AgKFRSRUVfVFlQRSAoYXJnKSkpCiAJICAgICAgYXJnID0gY3BfcGVy Zm9ybV9pbnRlZ3JhbF9wcm9tb3Rpb25zIChhcmcsIGNvbXBsYWluKTsKIAog CSAgICAvKiBNYWtlIHN1cmUgdGhlIHJlc3VsdCBpcyBub3QgYW4gbHZhbHVl OiBhIHVuYXJ5IHBsdXMgb3IgbWludXMKQEAgLTYzMjMsNyArNjMyMyw3IEBA IGNwX2J1aWxkX3VuYXJ5X29wIChlbnVtIHRyZWVfY29kZSBjb2RlLCB0cmVl IHhhcmcsIGJvb2wgbm9jb252ZXJ0LAogCQkJCQkJICAgfCBXQU5UX1ZFQ1RP Ul9PUl9DT01QTEVYLAogCQkJCQkJICAgYXJnLCB0cnVlKSkpCiAJZXJyc3Ry aW5nID0gXygid3JvbmcgdHlwZSBhcmd1bWVudCB0byBiaXQtY29tcGxlbWVu dCIpOwotICAgICAgZWxzZSBpZiAoIW5vY29udmVydCAmJiBDUF9JTlRFR1JB TF9UWVBFX1AgKFRSRUVfVFlQRSAoYXJnKSkpCisgICAgICBlbHNlIGlmICgh bm9jb252ZXJ0ICYmIElOVEVHUkFMX09SX0VOVU1FUkFUSU9OX1RZUEVfUCAo VFJFRV9UWVBFIChhcmcpKSkKIAl7CiAJICAvKiBXYXJuIGlmIHRoZSBleHBy ZXNzaW9uIGhhcyBib29sZWFuIHZhbHVlLiAgKi8KIAkgIGlmIChUUkVFX0NP REUgKFRSRUVfVFlQRSAoYXJnKSkgPT0gQk9PTEVBTl9UWVBFCmRpZmYgLS1n aXQgYS9nY2MvZXhwbWVkLmMgYi9nY2MvZXhwbWVkLmMKaW5kZXggZjE5NzVm ZTMzZmUuLmZmODU1NGIxNTYyIDEwMDY0NAotLS0gYS9nY2MvZXhwbWVkLmMK KysrIGIvZ2NjL2V4cG1lZC5jCkBAIC0xOCw2ICsxOCw4IEBAIFlvdSBzaG91 bGQgaGF2ZSByZWNlaXZlZCBhIGNvcHkgb2YgdGhlIEdOVSBHZW5lcmFsIFB1 YmxpYyBMaWNlbnNlCiBhbG9uZyB3aXRoIEdDQzsgc2VlIHRoZSBmaWxlIENP UFlJTkczLiAgSWYgbm90IHNlZQogPGh0dHA6Ly93d3cuZ251Lm9yZy9saWNl bnNlcy8+LiAgKi8KIAorLyogV29yayBhcm91bmQgdHJlZS1vcHRpbWl6YXRp b24vOTE4MjUuICAqLworI3ByYWdtYSBHQ0MgZGlhZ25vc3RpYyB3YXJuaW5n ICItV21heWJlLXVuaW5pdGlhbGl6ZWQiCiAKICNpbmNsdWRlICJjb25maWcu aCIKICNpbmNsdWRlICJzeXN0ZW0uaCIKZGlmZiAtLWdpdCBhL2djYy9DaGFu Z2VMb2cgYi9nY2MvQ2hhbmdlTG9nCmluZGV4IDQzMTJkMTI1MDYxLi44ZWUy M2RkNTk4NiAxMDA2NDQKLS0tIGEvZ2NjL0NoYW5nZUxvZworKysgYi9nY2Mv Q2hhbmdlTG9nCkBAIC0xLDMgKzEsOCBAQAorMjAxOS0xMC0yNiAgSmFzb24g TWVycmlsbCAgPGphc29uQHJlZGhhdC5jb20+CisKKwlQUiB0cmVlLW9wdGlt aXphdGlvbi85MTgyNQorCSogZXhwbWVkLmM6IFJlZHVjZSAtV21heWJlLXVu aW5pdGlhbGl6ZWQgdG8gd2FybmluZy4KKwogMjAxOS0xMS0wNSAgSmltIFdp bHNvbiAgPGppbXdAc2lmaXZlLmNvbT4KIAogCVBSIG1pZGRsZS1lbmQvOTIy NjMKZGlmZiAtLWdpdCBhL2djYy9jcC9DaGFuZ2VMb2cgYi9nY2MvY3AvQ2hh bmdlTG9nCmluZGV4IDIwODUzMTliYmM5Li41NjA4OTZhMWRkOCAxMDA2NDQK LS0tIGEvZ2NjL2NwL0NoYW5nZUxvZworKysgYi9nY2MvY3AvQ2hhbmdlTG9n CkBAIC0xLDMgKzEsMTAgQEAKKzIwMTktMDktMTUgIEphc29uIE1lcnJpbGwg IDxqYXNvbkByZWRoYXQuY29tPgorCisJKiBjYWxsLmMgKGJ1aWxkX25ld19v cF8xKTogRG9uJ3QgYXBwbHkgYW55IHN0YW5kYXJkIGNvbnZlcnNpb25zIHRv CisJdGhlIG9wZXJhbmRzIG9mIGEgYnVpbHQtaW4gb3BlcmF0b3IuICBEb24n dCBzdXBwcmVzcyBjb252ZXJzaW9ucyBpbgorCWNwX2J1aWxkX3VuYXJ5X29w LgorCSogdHlwZWNrLmMgKGNwX2J1aWxkX3VuYXJ5X29wKTogRG8gaW50ZWdy YWwgcHJvbW90aW9ucyBmb3IgZW51bXMuCisKIDIwMTktMTEtMDQgIEphc29u IE1lcnJpbGwgIDxqYXNvbkByZWRoYXQuY29tPgogCiAJVXNlIHZlYyBpbnN0 ZWFkIG9mIHJhdyBhcnJheSBmb3IgYnVpbHQtaW4gY2FuZGlkYXRlcy4K --000000000000ee74380596a2240c--