From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM10-MW2-obe.outbound.protection.outlook.com (mail-mw2nam10on2074.outbound.protection.outlook.com [40.107.94.74]) by sourceware.org (Postfix) with ESMTPS id EAB523858D3C for ; Wed, 20 Apr 2022 06:00:48 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org EAB523858D3C ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aBY8DOO45FNwFMjKSLxbgxSIunpU3XuchuiPDKLcJYCtXkk52j2T+nC96H45to5K4PRmzWK5xptNY1V8JX4OM66tufuF4Yq871EQVVDW04TnKXpUCaZE5J0ls6sKr/bmEwy23FZVuJR+hMYDh154etJ9uHTqdtklp8Ouacctxn0m3NiBQS6Z+GTCZ26lhUu1jf+d6kRbBIRMvdc51uSOzrXeYpDTAskZ1ilYfN9wTE4VRzoEIQSOds9rYSSg0MM6w1wkRdslKC3c7EdR/TUf+SdwUU7o42lbr32WO8AYm7ISA9ywonkm13+iKMMqYKHVLJ5OpFlxUhqILGgg58c4aQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-AntiSpam-MessageData-ChunkCount:X-MS-Exchange-AntiSpam-MessageData-0:X-MS-Exchange-AntiSpam-MessageData-1; bh=TKIeQQyOC+sJ1FDTsfNeQnJMcjMOjhTE12dz2egIkWI=; b=F5Yb25xB4GOJTIz2v4+e0TlIGdDgOGZs46VbENhvDcKiOVU2t9PMN6l7KRGXT2ZpWDzyg/U/KtxDww6wvO0fR+/MQthcvEsVCylU1Z/khE5ts3JXf0ikTN74qmUy+RlMzyEVRhwIEsFVVz+nRzx+OJ2VayjSOm3edPAfnmtohMPEDQCcRkYUfcpSchhu+ycjc9j2PWUm1qPRSnl+2ndbhOWvGyxci/EhgVM6lJh5iRl23wQORJ9rtMDCLhSHr9Dp+AQKyxKP4eXvhgpFkhGBTrJmWIO6tc0Oz82RfT58gLTbDBTC2/GM1MVJFWVOu4vUNqfUrQ9RswwE9Pu/liv3QQ== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=amd.com; dmarc=pass action=none header.from=amd.com; dkim=pass header.d=amd.com; arc=none Received: from BL1PR12MB5780.namprd12.prod.outlook.com (2603:10b6:208:393::10) by CY4PR12MB1655.namprd12.prod.outlook.com (2603:10b6:910:11::11) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5186.13; Wed, 20 Apr 2022 06:00:44 +0000 Received: from BL1PR12MB5780.namprd12.prod.outlook.com ([fe80::837:e0c4:168e:7a15]) by BL1PR12MB5780.namprd12.prod.outlook.com ([fe80::837:e0c4:168e:7a15%7]) with mapi id 15.20.5164.025; Wed, 20 Apr 2022 06:00:44 +0000 From: "Natarajan, Kavitha" To: Tom Tromey , "Natarajan, Kavitha via Gdb-patches" CC: "George, Jini Susan" , "Parasuraman, Hariharan" Subject: RE: [PATCH] Debug support for global alias variable Thread-Topic: [PATCH] Debug support for global alias variable Thread-Index: Adgvx/KC9Ls2FcnvTJeRu5jcNWYisQPvqNcAAMR4mPAAN0esgAApFU6QAAWQfSADLKLJ2ACLGbggAAmV9IYALMmHcAAWJXYmAA6K5rA= Date: Wed, 20 Apr 2022 06:00:44 +0000 Message-ID: References: <66ca57f9-c3b8-4aeb-f07c-c3c254dfdea6@redhat.com> <87ilra1gcx.fsf@tromey.com> <87sfqawi0v.fsf@tromey.com> <871qxsisr7.fsf@tromey.com> In-Reply-To: <871qxsisr7.fsf@tromey.com> Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: yes X-MS-TNEF-Correlator: msip_labels: MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_ActionId=49a5243e-d6b6-4461-87f0-25e6131dfbd2; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_ContentBits=0; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_Enabled=true; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_Method=Standard; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_Name=AMD Official Use Only-AIP 2.0; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_SetDate=2022-04-20T05:56:26Z; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: b0227b55-ad1b-4145-8d42-08da22931ba6 x-ms-traffictypediagnostic: CY4PR12MB1655:EE_ x-microsoft-antispam-prvs: x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: Wb4AhXeATDSl6DMhv9KAtskI9oUgO05T0DdnUzuz6N8go37KDGkd4u5/OV89LXM/1ZnAcKCvMoxYL9WKVIMKIln4enpTaYn9r1TyJoJJ1qRgcp7ULwArgkuP+YMuO+K6zDNDF+U7Z3OaTk3PZtJMXPXP3DY+7zxWrRlC4otMoN1bZSnBk26hPO1vNQKBR9/4yYCPdz6hGXtDpD/EVsUMsAR16k3OGvNon1qB01hNeHYZkvc/7Asj7Ma6oKxr+hmRX4HuqUzT/82oO6Xdyohej4J4op7ySCx2zQvqO0Y5HryTPWTVd+pVSXOf3GYcPVa4+c4GNOOzya5Iw06eu93HqUP+mTY3thPBau0yIzMXlsPz1p5SjCDJRtwAbyRkkAfAgp2Y7YCUkjmdBAb3ovxH05kXO09W9z6fB3NuAucTEvjyRW9tbD3zrZr/ClYVxds5JVC17dPEOJN8A5x2qBO8MI5oqPBIIl4Av5nwQDlBFM0SdK2O/J3J+UYxt810KT1MiJB/omZUB2xw1ONJ/mEIRPb4lnpcbtFjGzVhA6NJRXd+tU7FwlFh5FQuMvtK521mYY/o19nJt2FBN0vay6DB7R8IRRDdsvHcsLWw04Ttz/Z0trYBcqza++2qhK5E1jFfU9qy5aUfO1m/c5jJuMwC5QHVGIlkoPpvJNNxaHCve1vi+Pn8CnrbRY+cY/vTbrdzmz8Bg36rkei5yViiDi17GaH+PJ0MEnrxZjbQb07VYikP+09peTHHzZZMFRaFavQD0dJ+d7nv45jS7zYxMtPPVVRgeNHh7xyN0OAi/gRPFTE= x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BL1PR12MB5780.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(83380400001)(71200400001)(6506007)(26005)(7696005)(38100700002)(5660300002)(186003)(38070700005)(55016003)(64756008)(8936002)(4326008)(66476007)(2906002)(66446008)(66556008)(66946007)(508600001)(86362001)(9686003)(84970400001)(76116006)(110136005)(316002)(54906003)(33656002)(8676002)(99936003)(122000001)(52536014); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?gNWAmgtumMkN7Hlz11dXLf+9EovBwZ2Gt4oWXrcvm6mkYuocLTf67SO8ZZ+e?= =?us-ascii?Q?j2qncFOuiXhYtnaH0pNG8yiucQMzqyo/7dYpmfMNJYAvQ0szy0XZQpcBH0m9?= =?us-ascii?Q?PL412Hsodl/MiEDk74j82+mS9Ggdl3jhMu9xKHpNdOZaRleHGnXLK4lakG0H?= =?us-ascii?Q?KNjZO+71razXdTPpJzvL02hnzeUVqgakkRJzorPPr1YBL0OzUWeYYmRsJ8W4?= =?us-ascii?Q?a5I/OxdXN8m5K9CZDFERfmsvMHQ5TUxyWQpGvCCyIzD7cIvMDcMSqfFCyuzg?= =?us-ascii?Q?QU7m78/5AjlC284kqckxb4pjWpfEhhJN3kR6vna+GLMn8uPYF31t+5pTthI8?= =?us-ascii?Q?EeLWxRLCaA9qeQbwUB97JSk3/O/FYNUpZiKv2CrXqZgyjeUWKuyD6Md80zCF?= =?us-ascii?Q?9EkU9Qfw4Qo+DOOyoWYQ1f0Yi8muHh3XNnUhQXZu8h/mkgOPB44m5u4pgBTo?= =?us-ascii?Q?UquGnKzOgn0HqHeToAKWWFh4lpjc+P7sQjyCidTKUJah5CVpu3yHZrSY2vIT?= =?us-ascii?Q?UMshabOIaQsn3tc8abpmH5LdnxS1UPMmyvEwteW7/jRHG8t+ZmN3O5ZKXFdG?= =?us-ascii?Q?UURzoizfwNgys9R85aNbfjh10qQ9sl7bs+477eEdYUyw/DuJuVlCjzhgyex2?= =?us-ascii?Q?g5cH6XyWutGOs53L//+OMbrfQwl1UJzapsAtjuX2xplL+GRmcZg+bn5gSls/?= =?us-ascii?Q?THTefwQofUSpysDD47/iP10PyqJZVVJUE62/ijA053ny0Ki2LR3jlBDB0k7s?= =?us-ascii?Q?VP2RodG3JFZv7Wimpz11xSKIQogRRlTmHTrTcOoNMdKyCEMnVxBP+VCRvQXs?= =?us-ascii?Q?QpqVp8m3DiUF62PpD+bcv+jmqNgrvWx4b3S9vyIVBWFPlFYHhFk6ku0+92b4?= =?us-ascii?Q?d4Ctrw7beXDA9tCmzhj+RDq/6q9clTqg42lz2i9hwoVhdLDJHHCSpldgbRtw?= =?us-ascii?Q?YBQQDRra22KGvfX9ux76IFHVVkoZsQ9AJmzsGFJplTrN0C2WklcDSuX9Mbkc?= =?us-ascii?Q?BbrmGAmFbZ1iSw8v9KOgqbocV92QqASyF/eANpeKy91MdOTQo24qnlh28S+2?= =?us-ascii?Q?Qvy5ckD9EgYKWzcJY9pgs1moN6rcmdNSp8fwfRy46qUJpEci1cjH4humjk8k?= =?us-ascii?Q?fzC+Kr3d0AL4ZyRyj7WdefOjyQ7wd6iIiqZqym8i843msezMm/dCCXZIrt4t?= =?us-ascii?Q?wUERL4kD6noMAPtLRyPtNB066gySMEiC/Ht7BtWW0dv+wslSbeLXLSPlXhGE?= =?us-ascii?Q?DingIwIHwiNbGczjRbIUzK0LA/t9CAatM5TXsuR9K1/RdO5E9W/BMuVluW1m?= =?us-ascii?Q?pyOHROnhfEanX+Kk9JRo7DxEpgjUIfzalE6YnBDQZepJsYcWm0fhE6876N2g?= =?us-ascii?Q?zOfBegq9FLoLHT5tcR15MbbAldp+oWpGzKzXMX+yq8NMu8DB/C0QGECgDDn9?= =?us-ascii?Q?HICwC3zQpSFMyoyhgT84JahGnOKvuj1NiXNkVY66sESbA1TWlQFDrE+MDmEA?= =?us-ascii?Q?VeHu22pOxuIJ7NSdmPuT3kfYGCMtLFn7DXgs79TTP0YHLVV4CDJsJ9nHDuXk?= =?us-ascii?Q?gjEDXbG+RUDNqwrRjystprMK6xjIyMxUnoGq+WDlFvv6TxaCjDRMIAfX75GV?= =?us-ascii?Q?bodyGWrSckfMRTFcY5dO/xvJ9pjXpuvFmeL6jtlnNKUVwSX+kAUaYo3jEToE?= =?us-ascii?Q?PITKxIYxxwWPCwpivFZ0uw7QNA3BEIkY6F+AJ7c6xirVumFX?= Content-Type: multipart/mixed; boundary="_002_BL1PR12MB5780284165A5366634D158A7F7F59BL1PR12MB5780namp_" MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BL1PR12MB5780.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: b0227b55-ad1b-4145-8d42-08da22931ba6 X-MS-Exchange-CrossTenant-originalarrivaltime: 20 Apr 2022 06:00:44.4533 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 3dd8961f-e488-4e60-8e11-a82d994e183d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: 4HAq6eeTG/7OpMBC0kfGbazN1czwTbeCSU6U2BfHA5ADg30bMI6v1ULp6Yt8t6XaUcVhS96tyvVj1guRQXi1FA== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1655 X-Spam-Status: No, score=-13.0 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H2, SPF_HELO_PASS, SPF_PASS, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on server2.sourceware.org X-BeenThere: gdb-patches@sourceware.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: Gdb-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Apr 2022 06:00:52 -0000 --_002_BL1PR12MB5780284165A5366634D158A7F7F59BL1PR12MB5780namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only] > Yes, I think it's fine. Thank you. > > Tom Thank you Tom. I am attaching the final patch. Please verify and approve. Regards, Kavitha =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D= =3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D When clang emits the dwarf information of global alias variable as DW_TAG_imported_declaration, gdb does not handle it. GDB reads this tag as C++/fortran imported declaration (type alias, namespace alias and fortran module). Added support to handle this tag as alias variable. This change fixes the failure in gdb.base/symbol-alias.exp testcase. This testcase is also updated to test nested (recursive) alias. --- gdb/dwarf2/read.c | 60 ++++++++++++++--------- gdb/testsuite/gdb.base/symbol-alias.exp | 63 ++++++++++++++++++++++++- gdb/testsuite/gdb.base/symbol-alias2.c | 16 +++++++ 3 files changed, 116 insertions(+), 23 deletions(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 6dcd446e5f4..d0c95459d8f 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -957,6 +957,10 @@ static void build_type_psymtabs_reader (cutu_reader *r= eader, static void dwarf2_build_psymtabs_hard (dwarf2_per_objfile *per_objfile); +static void var_decode_location (struct attribute *attr, + struct symbol *sym, + struct dwarf2_cu *cu); + static unsigned int peek_abbrev_code (bfd *, const gdb_byte *); static const gdb_byte *read_attribute (const struct die_reader_specs *, @@ -1134,7 +1138,7 @@ static struct using_direct **using_directives (struct= dwarf2_cu *cu); static void read_import_statement (struct die_info *die, struct dwarf2_cu = *); -static int read_namespace_alias (struct die_info *die, struct dwarf2_cu *c= u); +static bool read_alias (struct die_info *die, struct dwarf2_cu *cu); static struct type *read_module_type (struct die_info *die, struct dwarf2_cu *cu); @@ -8728,9 +8732,9 @@ process_die (struct die_info *die, struct dwarf2_cu *= cu) break; case DW_TAG_imported_declaration: cu->processing_has_namespace_info =3D true; - if (read_namespace_alias (die, cu)) + if (read_alias (die, cu)) break; - /* The declaration is not a global namespace alias. */ + /* The declaration is not a global namespace or variable alias. */ /* Fall through. */ case DW_TAG_imported_module: cu->processing_has_namespace_info =3D true; @@ -9198,18 +9202,19 @@ dwarf2_physname (const char *name, struct die_info = *die, struct dwarf2_cu *cu) return retval; } -/* Inspect DIE in CU for a namespace alias. If one exists, record - a new symbol for it. +/* Inspect DIE in CU for a namespace alias or a variable + with alias attribute. If one exists, record a new symbol + for it. - Returns 1 if a namespace alias was recorded, 0 otherwise. */ + Returns "true" if an alias was recorded, "false" otherwise. */ -static int -read_namespace_alias (struct die_info *die, struct dwarf2_cu *cu) +static bool +read_alias (struct die_info *die, struct dwarf2_cu *cu) { struct attribute *attr; - /* If the die does not have a name, this is not a namespace - alias. */ + /* If the die does not have a name, this is not a namespace alias + or variable alias. */ attr =3D dwarf2_attr (die, DW_AT_name, cu); if (attr !=3D NULL) { @@ -9235,26 +9240,39 @@ read_namespace_alias (struct die_info *die, struct = dwarf2_cu *cu) { complaint (_("DIE at %s has too many recursively imported " "declarations"), sect_offset_str (d->sect_off)); - return 0; + return false; } if (attr !=3D NULL) { struct type *type; - sect_offset sect_off =3D attr->get_ref_die_offset (); - - type =3D get_die_type_at_offset (sect_off, cu->per_cu, cu->per_ob= jfile); - if (type !=3D NULL && type->code () =3D=3D TYPE_CODE_NAMESPACE) + if (d->tag =3D=3D DW_TAG_variable) { - /* This declaration is a global namespace alias. Add - a symbol for it whose type is the aliased namespace. */ - new_symbol (die, type, cu); - return 1; + /* This declaration is a C/C++ global variable alias. Add + a symbol for it whose type is same as aliased variable. *= / + type =3D die_type (d, imported_cu); + struct symbol *sym =3D new_symbol (die, type, cu); + attr =3D dwarf2_attr (d, DW_AT_location, imported_cu); + sym->set_aclass_index (LOC_UNRESOLVED); + if (attr !=3D nullptr) + var_decode_location (attr, sym, cu); + return true; + } + else + { + sect_offset sect_off =3D attr->get_ref_die_offset (); + type =3D get_die_type_at_offset (sect_off, cu->per_cu, cu->pe= r_objfile); + if (type !=3D NULL && type->code () =3D=3D TYPE_CODE_NAMESPAC= E) + { + /* This declaration is a global namespace alias. Add + a symbol for it whose type is the aliased namespace. = */ + new_symbol (die, type, cu); + return true; + } } } } - - return 0; + return false; } /* Return the using directives repository (global or local?) to use in the diff --git a/gdb/testsuite/gdb.base/symbol-alias.exp b/gdb/testsuite/gdb.ba= se/symbol-alias.exp index 2b53cc31053..a9487b25f4d 100644 --- a/gdb/testsuite/gdb.base/symbol-alias.exp +++ b/gdb/testsuite/gdb.base/symbol-alias.exp @@ -15,6 +15,9 @@ # along with this program. If not, see . standard_testfile symbol-alias.c symbol-alias2.c +set using_clang [test_compiler_info clang-*] +set old_clang [expr [test_compiler_info {clang-1[0-3]-*-*}] \ + || [test_compiler_info {clang-[1-9]-*}]] if { [prepare_for_testing "failed to prepare" ${testfile} [list $srcfile $= srcfile2]] } { return -1 @@ -31,6 +34,62 @@ foreach f {"func" "func_alias"} { } # Variables. -foreach v {"g_var_s" "g_var_s_alias"} { - gdb_test "p $v" "=3D {field1 =3D 1, field2 =3D 2}" +gdb_test "p g_var_s" "=3D {field1 =3D 1, field2 =3D 2}" +foreach v {"g_var_s_alias" "g_var_s_alias2"} { + gdb_test_multiple "p $v" "p $v" { + -re " =3D {field1 =3D 1, field2 =3D 2}.*$gdb_prompt $" { + pass "print alias of variable $v" + } + -re ".*has unknown type; cast it to its declared type.*$gdb_prompt= $" { + if { $old_clang } { + xfail "print alias variable $v" + } else { + fail "print alias variable $v" + } + } + } +} + +# Static Variable. +gdb_test "p g_var" " =3D 1" +gdb_test_multiple "p g_var_alias" "p g_var_alias" { + -re " =3D 1.*$gdb_prompt $" { + pass "print alias of static variable" + } + -re ".*has unknown type; cast it to its declared type.*$gdb_prompt $"= { + if { $old_clang } { + xfail "print alias of static variable" + } else { + fail "print alias of static variable" + } + } +} + +# Deferred Variable. +gdb_test "p g_def_var" " =3D 2" +gdb_test_multiple "p g_def_var_alias" "p g_def_var_alias" { + -re " =3D 2.*$gdb_prompt $" { + pass "print alias of deferred variable" + } + -re ".*has unknown type; cast it to its declared type.*$gdb_prompt $"= { + if { $using_clang } { + xfail "print alias of deferred variable" + } else { + fail "print alias of deferred variable" + } + } +} + +# Alias of deferred Variable alias. +gdb_test_multiple "p g_def_var2_alias2" "p g_def_var2_alias2" { + -re " =3D 3.*$gdb_prompt $" { + pass "print alias of alias of deferred variable" + } + -re ".*has unknown type; cast it to its declared type.*$gdb_prompt $"= { + if { $old_clang } { + xfail "print alias of alias of deferred variable" + } else { + fail "print alias of alias of deferred variable" + } + } } diff --git a/gdb/testsuite/gdb.base/symbol-alias2.c b/gdb/testsuite/gdb.bas= e/symbol-alias2.c index 34f4e121e25..41d4b6a53e5 100644 --- a/gdb/testsuite/gdb.base/symbol-alias2.c +++ b/gdb/testsuite/gdb.base/symbol-alias2.c @@ -23,6 +23,8 @@ struct S struct S g_var_s =3D { 1, 2 }; +static int g_var =3D 1; + #ifdef __cplusplus /* So that the alias attribute below work without having to figure out this function's mangled name. */ @@ -38,3 +40,17 @@ func (void) struct S *func_alias (void) __attribute__ ((alias ("func"))); extern struct S g_var_s_alias __attribute__ ((alias ("g_var_s"))); + +extern struct S g_var_s_alias2 __attribute__ ((alias ("g_var_s_alias"))); + +extern int g_var_alias __attribute__ ((alias ("g_var"))); + +extern int g_def_var_alias __attribute__ ((alias ("g_def_var"))); + +int g_def_var =3D 2; + +extern int g_def_var2_alias __attribute__ ((alias ("g_def_var2"))); + +int g_def_var2 =3D 3; + +extern int g_def_var2_alias2 __attribute__ ((alias ("g_def_var2_alias"))); -- --_002_BL1PR12MB5780284165A5366634D158A7F7F59BL1PR12MB5780namp_ Content-Type: application/octet-stream; name="0006-Debug-support-for-C-global-alias-variable-tom-tromey.patch" Content-Description: 0006-Debug-support-for-C-global-alias-variable-tom-tromey.patch Content-Disposition: attachment; filename="0006-Debug-support-for-C-global-alias-variable-tom-tromey.patch"; size=8488; creation-date="Wed, 20 Apr 2022 05:58:54 GMT"; modification-date="Wed, 20 Apr 2022 06:00:42 GMT" Content-Transfer-Encoding: base64 V2hlbiBjbGFuZyBlbWl0cyB0aGUgZHdhcmYgaW5mb3JtYXRpb24gb2YgZ2xvYmFsIGFsaWFzIHZh cmlhYmxlDQphcyBEV19UQUdfaW1wb3J0ZWRfZGVjbGFyYXRpb24sIGdkYiBkb2VzIG5vdCBoYW5k bGUgaXQuIEdEQiByZWFkcw0KdGhpcyB0YWcgYXMgQysrL2ZvcnRyYW4gaW1wb3J0ZWQgZGVjbGFy YXRpb24gKHR5cGUgYWxpYXMsIG5hbWVzcGFjZQ0KYWxpYXMgYW5kIGZvcnRyYW4gbW9kdWxlKS4g QWRkZWQgc3VwcG9ydCB0byBoYW5kbGUgdGhpcyB0YWcgYXMNCmFsaWFzIHZhcmlhYmxlLg0KDQpU aGlzIGNoYW5nZSBmaXhlcyB0aGUgZmFpbHVyZSBpbiBnZGIuYmFzZS9zeW1ib2wtYWxpYXMuZXhw IHRlc3RjYXNlLg0KVGhpcyB0ZXN0Y2FzZSBpcyBhbHNvIHVwZGF0ZWQgdG8gdGVzdCBuZXN0ZWQg KHJlY3Vyc2l2ZSkgYWxpYXMuDQotLS0NCiBnZGIvZHdhcmYyL3JlYWQuYyAgICAgICAgICAgICAg ICAgICAgICAgfCA2MCArKysrKysrKysrKysrKy0tLS0tLS0tLQ0KIGdkYi90ZXN0c3VpdGUvZ2Ri LmJhc2Uvc3ltYm9sLWFsaWFzLmV4cCB8IDYzICsrKysrKysrKysrKysrKysrKysrKysrKy0NCiBn ZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3N5bWJvbC1hbGlhczIuYyAgfCAxNiArKysrKysrDQogMyBm aWxlcyBjaGFuZ2VkLCAxMTYgaW5zZXJ0aW9ucygrKSwgMjMgZGVsZXRpb25zKC0pDQoNCmRpZmYg LS1naXQgYS9nZGIvZHdhcmYyL3JlYWQuYyBiL2dkYi9kd2FyZjIvcmVhZC5jDQppbmRleCA2ZGNk NDQ2ZTVmNC4uZDBjOTU0NTlkOGYgMTAwNjQ0DQotLS0gYS9nZGIvZHdhcmYyL3JlYWQuYw0KKysr IGIvZ2RiL2R3YXJmMi9yZWFkLmMNCkBAIC05NTcsNiArOTU3LDEwIEBAIHN0YXRpYyB2b2lkIGJ1 aWxkX3R5cGVfcHN5bXRhYnNfcmVhZGVyIChjdXR1X3JlYWRlciAqcmVhZGVyLA0KIA0KIHN0YXRp YyB2b2lkIGR3YXJmMl9idWlsZF9wc3ltdGFic19oYXJkIChkd2FyZjJfcGVyX29iamZpbGUgKnBl cl9vYmpmaWxlKTsNCiANCitzdGF0aWMgdm9pZCB2YXJfZGVjb2RlX2xvY2F0aW9uIChzdHJ1Y3Qg YXR0cmlidXRlICphdHRyLA0KKwkJCQkgc3RydWN0IHN5bWJvbCAqc3ltLA0KKwkJCQkgc3RydWN0 IGR3YXJmMl9jdSAqY3UpOw0KKw0KIHN0YXRpYyB1bnNpZ25lZCBpbnQgcGVla19hYmJyZXZfY29k ZSAoYmZkICosIGNvbnN0IGdkYl9ieXRlICopOw0KIA0KIHN0YXRpYyBjb25zdCBnZGJfYnl0ZSAq cmVhZF9hdHRyaWJ1dGUgKGNvbnN0IHN0cnVjdCBkaWVfcmVhZGVyX3NwZWNzICosDQpAQCAtMTEz NCw3ICsxMTM4LDcgQEAgc3RhdGljIHN0cnVjdCB1c2luZ19kaXJlY3QgKip1c2luZ19kaXJlY3Rp dmVzIChzdHJ1Y3QgZHdhcmYyX2N1ICpjdSk7DQogDQogc3RhdGljIHZvaWQgcmVhZF9pbXBvcnRf c3RhdGVtZW50IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqKTsNCiAN Ci1zdGF0aWMgaW50IHJlYWRfbmFtZXNwYWNlX2FsaWFzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwg c3RydWN0IGR3YXJmMl9jdSAqY3UpOw0KK3N0YXRpYyBib29sIHJlYWRfYWxpYXMgKHN0cnVjdCBk aWVfaW5mbyAqZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSk7DQogDQogc3RhdGljIHN0cnVjdCB0 eXBlICpyZWFkX21vZHVsZV90eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwNCiAJCQkJICAgICAg c3RydWN0IGR3YXJmMl9jdSAqY3UpOw0KQEAgLTg3MjgsOSArODczMiw5IEBAIHByb2Nlc3NfZGll IChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpDQogICAgICAgYnJl YWs7DQogICAgIGNhc2UgRFdfVEFHX2ltcG9ydGVkX2RlY2xhcmF0aW9uOg0KICAgICAgIGN1LT5w cm9jZXNzaW5nX2hhc19uYW1lc3BhY2VfaW5mbyA9IHRydWU7DQotICAgICAgaWYgKHJlYWRfbmFt ZXNwYWNlX2FsaWFzIChkaWUsIGN1KSkNCisgICAgICBpZiAocmVhZF9hbGlhcyAoZGllLCBjdSkp DQogCWJyZWFrOw0KLSAgICAgIC8qIFRoZSBkZWNsYXJhdGlvbiBpcyBub3QgYSBnbG9iYWwgbmFt ZXNwYWNlIGFsaWFzLiAgKi8NCisgICAgICAvKiBUaGUgZGVjbGFyYXRpb24gaXMgbm90IGEgZ2xv YmFsIG5hbWVzcGFjZSBvciB2YXJpYWJsZSBhbGlhcy4gICovDQogICAgICAgLyogRmFsbCB0aHJv dWdoLiAgKi8NCiAgICAgY2FzZSBEV19UQUdfaW1wb3J0ZWRfbW9kdWxlOg0KICAgICAgIGN1LT5w cm9jZXNzaW5nX2hhc19uYW1lc3BhY2VfaW5mbyA9IHRydWU7DQpAQCAtOTE5OCwxOCArOTIwMiwx OSBAQCBkd2FyZjJfcGh5c25hbWUgKGNvbnN0IGNoYXIgKm5hbWUsIHN0cnVjdCBkaWVfaW5mbyAq ZGllLCBzdHJ1Y3QgZHdhcmYyX2N1ICpjdSkNCiAgIHJldHVybiByZXR2YWw7DQogfQ0KIA0KLS8q IEluc3BlY3QgRElFIGluIENVIGZvciBhIG5hbWVzcGFjZSBhbGlhcy4gIElmIG9uZSBleGlzdHMs IHJlY29yZA0KLSAgIGEgbmV3IHN5bWJvbCBmb3IgaXQuDQorLyogSW5zcGVjdCBESUUgaW4gQ1Ug Zm9yIGEgbmFtZXNwYWNlIGFsaWFzIG9yIGEgdmFyaWFibGUNCisgICB3aXRoIGFsaWFzIGF0dHJp YnV0ZS4gSWYgb25lIGV4aXN0cywgcmVjb3JkIGEgbmV3IHN5bWJvbA0KKyAgIGZvciBpdC4NCiAN Ci0gICBSZXR1cm5zIDEgaWYgYSBuYW1lc3BhY2UgYWxpYXMgd2FzIHJlY29yZGVkLCAwIG90aGVy d2lzZS4gICovDQorICAgUmV0dXJucyAidHJ1ZSIgaWYgYW4gYWxpYXMgd2FzIHJlY29yZGVkLCAi ZmFsc2UiIG90aGVyd2lzZS4gICovDQogDQotc3RhdGljIGludA0KLXJlYWRfbmFtZXNwYWNlX2Fs aWFzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpDQorc3RhdGlj IGJvb2wNCityZWFkX2FsaWFzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9j dSAqY3UpDQogew0KICAgc3RydWN0IGF0dHJpYnV0ZSAqYXR0cjsNCiANCi0gIC8qIElmIHRoZSBk aWUgZG9lcyBub3QgaGF2ZSBhIG5hbWUsIHRoaXMgaXMgbm90IGEgbmFtZXNwYWNlDQotICAgICBh bGlhcy4gICovDQorICAvKiBJZiB0aGUgZGllIGRvZXMgbm90IGhhdmUgYSBuYW1lLCB0aGlzIGlz IG5vdCBhIG5hbWVzcGFjZSBhbGlhcw0KKyAgICAgb3IgdmFyaWFibGUgYWxpYXMuICAqLw0KICAg YXR0ciA9IGR3YXJmMl9hdHRyIChkaWUsIERXX0FUX25hbWUsIGN1KTsNCiAgIGlmIChhdHRyICE9 IE5VTEwpDQogICAgIHsNCkBAIC05MjM1LDI2ICs5MjQwLDM5IEBAIHJlYWRfbmFtZXNwYWNlX2Fs aWFzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpDQogCXsNCiAJ ICBjb21wbGFpbnQgKF8oIkRJRSBhdCAlcyBoYXMgdG9vIG1hbnkgcmVjdXJzaXZlbHkgaW1wb3J0 ZWQgIg0KIAkJICAgICAgICJkZWNsYXJhdGlvbnMiKSwgc2VjdF9vZmZzZXRfc3RyIChkLT5zZWN0 X29mZikpOw0KLQkgIHJldHVybiAwOw0KKwkgIHJldHVybiBmYWxzZTsNCiAJfQ0KIA0KICAgICAg IGlmIChhdHRyICE9IE5VTEwpDQogCXsNCiAJICBzdHJ1Y3QgdHlwZSAqdHlwZTsNCi0JICBzZWN0 X29mZnNldCBzZWN0X29mZiA9IGF0dHItPmdldF9yZWZfZGllX29mZnNldCAoKTsNCi0NCi0JICB0 eXBlID0gZ2V0X2RpZV90eXBlX2F0X29mZnNldCAoc2VjdF9vZmYsIGN1LT5wZXJfY3UsIGN1LT5w ZXJfb2JqZmlsZSk7DQotCSAgaWYgKHR5cGUgIT0gTlVMTCAmJiB0eXBlLT5jb2RlICgpID09IFRZ UEVfQ09ERV9OQU1FU1BBQ0UpDQorCSAgaWYgKGQtPnRhZyA9PSBEV19UQUdfdmFyaWFibGUpDQog CSAgICB7DQotCSAgICAgIC8qIFRoaXMgZGVjbGFyYXRpb24gaXMgYSBnbG9iYWwgbmFtZXNwYWNl IGFsaWFzLiAgQWRkDQotCQkgYSBzeW1ib2wgZm9yIGl0IHdob3NlIHR5cGUgaXMgdGhlIGFsaWFz ZWQgbmFtZXNwYWNlLiAgKi8NCi0JICAgICAgbmV3X3N5bWJvbCAoZGllLCB0eXBlLCBjdSk7DQot CSAgICAgIHJldHVybiAxOw0KKwkgICAgICAvKiBUaGlzIGRlY2xhcmF0aW9uIGlzIGEgQy9DKysg Z2xvYmFsIHZhcmlhYmxlIGFsaWFzLiBBZGQNCisJCSBhIHN5bWJvbCBmb3IgaXQgd2hvc2UgdHlw ZSBpcyBzYW1lIGFzIGFsaWFzZWQgdmFyaWFibGUuICAqLw0KKwkgICAgICB0eXBlID0gZGllX3R5 cGUgKGQsIGltcG9ydGVkX2N1KTsNCisJICAgICAgc3RydWN0IHN5bWJvbCAqc3ltID0gbmV3X3N5 bWJvbCAoZGllLCB0eXBlLCBjdSk7DQorCSAgICAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZCwgRFdf QVRfbG9jYXRpb24sIGltcG9ydGVkX2N1KTsNCisJICAgICAgc3ltLT5zZXRfYWNsYXNzX2luZGV4 IChMT0NfVU5SRVNPTFZFRCk7DQorCSAgICAgIGlmIChhdHRyICE9IG51bGxwdHIpDQorCQl2YXJf ZGVjb2RlX2xvY2F0aW9uIChhdHRyLCBzeW0sIGN1KTsNCisJICAgICAgcmV0dXJuIHRydWU7DQor CSAgICB9DQorCSAgZWxzZQ0KKwkgICAgew0KKwkgICAgICBzZWN0X29mZnNldCBzZWN0X29mZiA9 IGF0dHItPmdldF9yZWZfZGllX29mZnNldCAoKTsNCisJICAgICAgdHlwZSA9IGdldF9kaWVfdHlw ZV9hdF9vZmZzZXQgKHNlY3Rfb2ZmLCBjdS0+cGVyX2N1LCBjdS0+cGVyX29iamZpbGUpOw0KKwkg ICAgICBpZiAodHlwZSAhPSBOVUxMICYmIHR5cGUtPmNvZGUgKCkgPT0gVFlQRV9DT0RFX05BTUVT UEFDRSkNCisJCXsNCisJCSAgLyogVGhpcyBkZWNsYXJhdGlvbiBpcyBhIGdsb2JhbCBuYW1lc3Bh Y2UgYWxpYXMuIEFkZA0KKwkJICAgICBhIHN5bWJvbCBmb3IgaXQgd2hvc2UgdHlwZSBpcyB0aGUg YWxpYXNlZCBuYW1lc3BhY2UuICAqLw0KKwkJICBuZXdfc3ltYm9sIChkaWUsIHR5cGUsIGN1KTsN CisJCSAgcmV0dXJuIHRydWU7DQorCQl9DQogCSAgICB9DQogCX0NCiAgICAgfQ0KLQ0KLSAgcmV0 dXJuIDA7DQorICByZXR1cm4gZmFsc2U7DQogfQ0KIA0KIC8qIFJldHVybiB0aGUgdXNpbmcgZGly ZWN0aXZlcyByZXBvc2l0b3J5IChnbG9iYWwgb3IgbG9jYWw/KSB0byB1c2UgaW4gdGhlDQpkaWZm IC0tZ2l0IGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zeW1ib2wtYWxpYXMuZXhwIGIvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9zeW1ib2wtYWxpYXMuZXhwDQppbmRleCAyYjUzY2MzMTA1My4uYTk0 ODdiMjVmNGQgMTAwNjQ0DQotLS0gYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3N5bWJvbC1hbGlh cy5leHANCisrKyBiL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc3ltYm9sLWFsaWFzLmV4cA0KQEAg LTE1LDYgKzE1LDkgQEANCiAjIGFsb25nIHdpdGggdGhpcyBwcm9ncmFtLiAgSWYgbm90LCBzZWUg PGh0dHA6Ly93d3cuZ251Lm9yZy9saWNlbnNlcy8+Lg0KIA0KIHN0YW5kYXJkX3Rlc3RmaWxlIHN5 bWJvbC1hbGlhcy5jIHN5bWJvbC1hbGlhczIuYw0KK3NldCB1c2luZ19jbGFuZyBbdGVzdF9jb21w aWxlcl9pbmZvIGNsYW5nLSpdDQorc2V0IG9sZF9jbGFuZyBbZXhwciBbdGVzdF9jb21waWxlcl9p bmZvIHtjbGFuZy0xWzAtM10tKi0qfV0gXA0KKwkJIHx8IFt0ZXN0X2NvbXBpbGVyX2luZm8ge2Ns YW5nLVsxLTldLSp9XV0NCiANCiBpZiB7IFtwcmVwYXJlX2Zvcl90ZXN0aW5nICJmYWlsZWQgdG8g cHJlcGFyZSIgJHt0ZXN0ZmlsZX0gW2xpc3QgJHNyY2ZpbGUgJHNyY2ZpbGUyXV0gfSB7DQogICAg IHJldHVybiAtMQ0KQEAgLTMxLDYgKzM0LDYyIEBAIGZvcmVhY2ggZiB7ImZ1bmMiICJmdW5jX2Fs aWFzIn0gew0KIH0NCiANCiAjIFZhcmlhYmxlcy4NCi1mb3JlYWNoIHYgeyJnX3Zhcl9zIiAiZ192 YXJfc19hbGlhcyJ9IHsNCi0gICAgZ2RiX3Rlc3QgInAgJHYiICI9IHtmaWVsZDEgPSAxLCBmaWVs ZDIgPSAyfSINCitnZGJfdGVzdCAicCBnX3Zhcl9zIiAiPSB7ZmllbGQxID0gMSwgZmllbGQyID0g Mn0iDQorZm9yZWFjaCB2IHsiZ192YXJfc19hbGlhcyIgImdfdmFyX3NfYWxpYXMyIn0gew0KKyAg ICBnZGJfdGVzdF9tdWx0aXBsZSAicCAkdiIgInAgJHYiIHsNCisJLXJlICAiID0ge2ZpZWxkMSA9 IDEsIGZpZWxkMiA9IDJ9LiokZ2RiX3Byb21wdCAkIiB7DQorCSAgICBwYXNzICJwcmludCBhbGlh cyBvZiB2YXJpYWJsZSAkdiINCisJfQ0KKwktcmUgICIuKmhhcyB1bmtub3duIHR5cGU7IGNhc3Qg aXQgdG8gaXRzIGRlY2xhcmVkIHR5cGUuKiRnZGJfcHJvbXB0ICQiIHsNCisJICAgIGlmIHsgJG9s ZF9jbGFuZyB9IHsNCisJCXhmYWlsICJwcmludCBhbGlhcyB2YXJpYWJsZSAkdiINCisJICAgIH0g ZWxzZSB7DQorCQlmYWlsICJwcmludCBhbGlhcyB2YXJpYWJsZSAkdiINCisJICAgIH0NCisJfQ0K KyAgICB9DQorfQ0KKw0KKyMgU3RhdGljIFZhcmlhYmxlLg0KK2dkYl90ZXN0ICJwIGdfdmFyIiAi ID0gMSINCitnZGJfdGVzdF9tdWx0aXBsZSAicCBnX3Zhcl9hbGlhcyIgInAgZ192YXJfYWxpYXMi IHsNCisgICAgLXJlICAiID0gMS4qJGdkYl9wcm9tcHQgJCIgew0KKwlwYXNzICJwcmludCBhbGlh cyBvZiBzdGF0aWMgdmFyaWFibGUiDQorICAgIH0NCisgICAgLXJlICAiLipoYXMgdW5rbm93biB0 eXBlOyBjYXN0IGl0IHRvIGl0cyBkZWNsYXJlZCB0eXBlLiokZ2RiX3Byb21wdCAkIiB7DQorCWlm IHsgJG9sZF9jbGFuZyB9IHsNCisJICB4ZmFpbCAicHJpbnQgYWxpYXMgb2Ygc3RhdGljIHZhcmlh YmxlIg0KKwl9IGVsc2Ugew0KKwkgIGZhaWwgInByaW50IGFsaWFzIG9mIHN0YXRpYyB2YXJpYWJs ZSINCisJfQ0KKyAgICB9DQorfQ0KKw0KKyMgRGVmZXJyZWQgVmFyaWFibGUuDQorZ2RiX3Rlc3Qg InAgZ19kZWZfdmFyIiAiID0gMiINCitnZGJfdGVzdF9tdWx0aXBsZSAicCBnX2RlZl92YXJfYWxp YXMiICJwIGdfZGVmX3Zhcl9hbGlhcyIgew0KKyAgICAtcmUgICIgPSAyLiokZ2RiX3Byb21wdCAk IiB7DQorCXBhc3MgInByaW50IGFsaWFzIG9mIGRlZmVycmVkIHZhcmlhYmxlIg0KKyAgICB9DQor ICAgIC1yZSAgIi4qaGFzIHVua25vd24gdHlwZTsgY2FzdCBpdCB0byBpdHMgZGVjbGFyZWQgdHlw ZS4qJGdkYl9wcm9tcHQgJCIgew0KKwlpZiB7ICR1c2luZ19jbGFuZyB9IHsNCisJICB4ZmFpbCAi cHJpbnQgYWxpYXMgb2YgZGVmZXJyZWQgdmFyaWFibGUiDQorCX0gZWxzZSB7DQorCSAgZmFpbCAi cHJpbnQgYWxpYXMgb2YgZGVmZXJyZWQgdmFyaWFibGUiDQorCX0NCisgICAgfQ0KK30NCisNCisj IEFsaWFzIG9mIGRlZmVycmVkIFZhcmlhYmxlIGFsaWFzLg0KK2dkYl90ZXN0X211bHRpcGxlICJw IGdfZGVmX3ZhcjJfYWxpYXMyIiAicCBnX2RlZl92YXIyX2FsaWFzMiIgew0KKyAgICAtcmUgICIg PSAzLiokZ2RiX3Byb21wdCAkIiB7DQorCXBhc3MgInByaW50IGFsaWFzIG9mIGFsaWFzIG9mIGRl ZmVycmVkIHZhcmlhYmxlIg0KKyAgICB9DQorICAgIC1yZSAgIi4qaGFzIHVua25vd24gdHlwZTsg Y2FzdCBpdCB0byBpdHMgZGVjbGFyZWQgdHlwZS4qJGdkYl9wcm9tcHQgJCIgew0KKwlpZiB7ICRv bGRfY2xhbmcgfSB7DQorCSAgeGZhaWwgInByaW50IGFsaWFzIG9mIGFsaWFzIG9mIGRlZmVycmVk IHZhcmlhYmxlIg0KKwl9IGVsc2Ugew0KKwkgIGZhaWwgInByaW50IGFsaWFzIG9mIGFsaWFzIG9m IGRlZmVycmVkIHZhcmlhYmxlIg0KKwl9DQorICAgIH0NCiB9DQpkaWZmIC0tZ2l0IGEvZ2RiL3Rl c3RzdWl0ZS9nZGIuYmFzZS9zeW1ib2wtYWxpYXMyLmMgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNl L3N5bWJvbC1hbGlhczIuYw0KaW5kZXggMzRmNGUxMjFlMjUuLjQxZDRiNmE1M2U1IDEwMDY0NA0K LS0tIGEvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zeW1ib2wtYWxpYXMyLmMNCisrKyBiL2dkYi90 ZXN0c3VpdGUvZ2RiLmJhc2Uvc3ltYm9sLWFsaWFzMi5jDQpAQCAtMjMsNiArMjMsOCBAQCBzdHJ1 Y3QgUw0KIA0KIHN0cnVjdCBTIGdfdmFyX3MgPSB7IDEsIDIgfTsNCiANCitzdGF0aWMgaW50IGdf dmFyID0gMTsNCisNCiAjaWZkZWYgX19jcGx1c3BsdXMNCiAvKiBTbyB0aGF0IHRoZSBhbGlhcyBh dHRyaWJ1dGUgYmVsb3cgd29yayB3aXRob3V0IGhhdmluZyB0byBmaWd1cmUgb3V0DQogICAgdGhp cyBmdW5jdGlvbidzIG1hbmdsZWQgbmFtZS4gICovDQpAQCAtMzgsMyArNDAsMTcgQEAgZnVuYyAo dm9pZCkNCiBzdHJ1Y3QgUyAqZnVuY19hbGlhcyAodm9pZCkgX19hdHRyaWJ1dGVfXyAoKGFsaWFz ICgiZnVuYyIpKSk7DQogDQogZXh0ZXJuIHN0cnVjdCBTIGdfdmFyX3NfYWxpYXMgX19hdHRyaWJ1 dGVfXyAoKGFsaWFzICgiZ192YXJfcyIpKSk7DQorDQorZXh0ZXJuIHN0cnVjdCBTIGdfdmFyX3Nf YWxpYXMyIF9fYXR0cmlidXRlX18gKChhbGlhcyAoImdfdmFyX3NfYWxpYXMiKSkpOw0KKw0KK2V4 dGVybiBpbnQgZ192YXJfYWxpYXMgX19hdHRyaWJ1dGVfXyAoKGFsaWFzICgiZ192YXIiKSkpOw0K Kw0KK2V4dGVybiBpbnQgZ19kZWZfdmFyX2FsaWFzIF9fYXR0cmlidXRlX18gKChhbGlhcyAoImdf ZGVmX3ZhciIpKSk7DQorDQoraW50IGdfZGVmX3ZhciA9IDI7DQorDQorZXh0ZXJuIGludCBnX2Rl Zl92YXIyX2FsaWFzIF9fYXR0cmlidXRlX18gKChhbGlhcyAoImdfZGVmX3ZhcjIiKSkpOw0KKw0K K2ludCBnX2RlZl92YXIyID0gMzsNCisNCitleHRlcm4gaW50IGdfZGVmX3ZhcjJfYWxpYXMyIF9f YXR0cmlidXRlX18gKChhbGlhcyAoImdfZGVmX3ZhcjJfYWxpYXMiKSkpOw0KLS0gDQoNCg== --_002_BL1PR12MB5780284165A5366634D158A7F7F59BL1PR12MB5780namp_--