From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from NAM11-BN8-obe.outbound.protection.outlook.com (mail-bn8nam11on2050.outbound.protection.outlook.com [40.107.236.50]) by sourceware.org (Postfix) with ESMTPS id B4A673858417 for ; Fri, 4 Mar 2022 13:44:43 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org B4A673858417 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mvkVODRRW0n5o+/RKk2pwKT+/S8ZxxelBuykmCeeQPNbcW1kBllOtg3jZ1I3cWRK6uxkhR8zRfi0z5XZxwEH3AbH45mHMc6naX8U9JGQaxmvrXg6T3nG38MUjn8hzr0+OtgFGHngwPyFsEL3iUoYtZ1N+UyBfUzZfFId4tX/mVZnOUeeOfYjCBqtrYTl/gfQ0Uo3S4+fPDZd2hAVi17qRfXSwxX82ydmua5d8sVx3V329MxHY5UkvONI7bZuWjqZHdnCdVVqTRfXXlcgNX6uUflHCrEzDuaLzpfZ4ndyYPlGWLs+ncEW1QmXwfujXluRsVsNtBIuJ8QfIP8zlHKHRA== 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=AZIT5E/sTGKy8VGOjE+z0SSLVLy2cy1/6I8aZ4fvnzM=; b=j8s9S858AhEr5hFxsNGg6cfKUfUKlbbGQmnYwntaGr8IrnwZiaSvb/s5axJHrM7Sf8SfG72q7FSKj7/x3JlteBaxg5Oip4reauvbCgSj472esipm1attMzAY7+y0D2N/P7yFs1oUy9Zw+sPsJRINnrE8WITf3I/qAKatzHpWF7joq/VefIXmK5HGoWoCg/B3L25qhJoT3Vg+Zf7g+Fk75beih1WVeIdMxsAkW+btKN7s8D005UWTbReZeG798/VQUyT8h2JT39JM06m9QoZCvqTL5YqnbDLaPGA+GPELP/b3dX+W8RaAk4TIyv2HTNyUKAvlicl6NhvVdJ7XZAnOpw== 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 DM4PR12MB5796.namprd12.prod.outlook.com (2603:10b6:8:63::16) by CY4PR12MB1334.namprd12.prod.outlook.com (2603:10b6:903:42::15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5017.26; Fri, 4 Mar 2022 13:44:38 +0000 Received: from DM4PR12MB5796.namprd12.prod.outlook.com ([fe80::a139:d457:a2f4:40d4]) by DM4PR12MB5796.namprd12.prod.outlook.com ([fe80::a139:d457:a2f4:40d4%4]) with mapi id 15.20.5038.015; Fri, 4 Mar 2022 13:44:38 +0000 From: "Natarajan, Kavitha" To: "Natarajan, Kavitha via Gdb-patches" Subject: [PATCH] Debug support for global alias variable Thread-Topic: [PATCH] Debug support for global alias variable Thread-Index: Adgvx/KC9Ls2FcnvTJeRu5jcNWYisQ== Date: Fri, 4 Mar 2022 13:44:38 +0000 Message-ID: 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=dc9d7c15-1086-43c9-8bfb-09c6455a1224; 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-03-04T12:57:32Z; MSIP_Label_88914ebd-7e6c-4e12-a031-a9906be2db14_SiteId=3dd8961f-e488-4e60-8e11-a82d994e183d; x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 93723b29-a254-4cb6-2d3b-08d9fde5207c x-ms-traffictypediagnostic: CY4PR12MB1334: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: dc2dOE7wlCcTFSoFthwj3XYn17ST/WThGlOgkZplNELX2wKMom4RqnRyjqF3N+mv02Dj1+DOehdQnui9AYEHYVK7GNg0oGzxJ6MpSq8lQZyd7HDfnK6wt53pYzJiUQ45tPDehyHUqfX3r3RJifqk2vW4ampnXWFbNdKN4chkHm7k8BpEQFirPua/ynhdC7GZLopBaZNpm/PV6b4Tyx0pkhefuN7T4EjqTDLJg4UmR8JbHXoZIXvuMo+Eh9lxoMrDvqUu1Esn9qV0em/03E3dA6BKUDnIItW2zodg9+ZhXpHqkHpssBdWLPMZpZjNqjNbfR8m+jzSaWtnzU1Zih8+IiVprN2l8m8T0rC8jf6mQYm0lBCJcqqgfngpwB80tD9IRgL/mF7e+RoMT3D0ozqg5Tn2iHrvgwRNC1X/DAhrHzZ2GG6Iy8Ra+QLbMFgoBaDkYsdkStiJc94auyj+FBsVXjoFUN7QzH5wtp1A31wsGYGzzvuFlnNpk5djM9RsFoZkuYuhBCTQOePpnyrBDYkdJiPzxOGFFiIdY8q0HwAqaw050lkE/+fLRlIhrRQVKi2uD44z06uQ8KVoTQkFk91dPCBeZAvxHw3l4FQtoZLpjlzIFe9tKi0y57Pkjcs0j5ArxPgASfKSOKeCUIX1VTIUWtT9CesnjoaTQBTBm+mu/zR5o3uqKeWICRs0yT3Fk95KUuzjnCliMeZ5hz9KPwIIA7A8gaGC0oUMsblGI0AUBqN1nWzSQwfXwPVsorOlmqG0h/UWoizh4aJAOSDXyxhOkdueSVL/S5AhscKC9VE7u6MzIekHysD0AkEpv2//GCGi/2qfWuzsR0HDyOopTPIHrA== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DM4PR12MB5796.namprd12.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230001)(4636009)(366004)(6506007)(2906002)(6916009)(84970400001)(21615005)(7696005)(166002)(71200400001)(38100700002)(33656002)(99936003)(316002)(508600001)(66476007)(66446008)(64756008)(966005)(8676002)(66946007)(66556008)(26005)(9686003)(86362001)(76116006)(5660300002)(83380400001)(186003)(52536014)(55016003)(38070700005)(8936002)(122000001); DIR:OUT; SFP:1101; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?U5IH49T8NKYZXeklXTjsnJhxWtDUeb7EBIuWuDnBYSlrj9ZuAfKtIEMmphF8?= =?us-ascii?Q?0P5SnoFNax0lrCf/EcdzHTyi1JWx1IMzgm03cYG+mulkOTTbJ23v8sxWwg5o?= =?us-ascii?Q?OZ7jtA6bUpstjBAhln/m15Q3o/c5FUEkYOAbi4AglkPcSgF+QqUxlW9ace9V?= =?us-ascii?Q?5zjAFMQXo/4f0lb3zstkLlufoYAV4ForN5pm4dlV4Ktbp/UztyFkv27qTHCu?= =?us-ascii?Q?rNmkke02cKQDQp9VuqJkj6NTtHlHqHMOVKXZKWZ5Po+Hbfh6xePgvrC9uZGF?= =?us-ascii?Q?CoBeVLkut9cfhwe8EZDFUYxF964X30bUE/GhaHnhedlkRLD6CNSAYsRioUvP?= =?us-ascii?Q?mduvO8U7ffbvFshhie8tSqpKRpAUM1DWEzyJ/GPhnQphXbYf3Bm9ZXptdK1j?= =?us-ascii?Q?cS4UYWhTnkaeK1qXOGhes7rGRRiJXppoLTl7R4yfpWanxtwvfPz3KA02z+UU?= =?us-ascii?Q?h/fz5NlLFAu5yp4SVEIFPMrNyRKnX5nyaMQndgC/AcQFdlasTI9F3Ue59wQ0?= =?us-ascii?Q?Sz59+b02yCrvmyXmmcIFIXb9VGY5zAel5deEQASwNFMt3JEzXI889+RnEK2z?= =?us-ascii?Q?iW0822ksHKFRqzltAEn5MB5+v2t+Rl2kF1Fctcrk37RBecQmJipzX/+cbLqV?= =?us-ascii?Q?L3cM4Gg+Ic2HdNoLvlTnQMJ4bbjjOYaWQ+w5bbzLWnR9l2UcV+566cWWZtIS?= =?us-ascii?Q?bU1u1p6PsFDKIWxpJ9pwCaOZZGkOfJgriqbw0T8nFl1JC1wru4hBI3/FQXHG?= =?us-ascii?Q?hq0MZqF0d5VnNCHcS7BmYWDLn6HkeBoI11oPULRK6FFVBKbC7T1gKaM+jlKL?= =?us-ascii?Q?EbVxj3UyQcYbSiCVGYh6sNHr/w0dYcDDnGP5Ua3JCVfxY43mB7gLK3tGEbgw?= =?us-ascii?Q?75VX7yvQaq3vV38zICU/f/297Ug8QJ2auwKJjoSlV72uWhl2p1kSOxAaVDRP?= =?us-ascii?Q?eRLCt2ki94WTd+Jvi60tjfxqxPCJ0BzjD5PptRlO2ihkDBnyHCDpaSH+s/iK?= =?us-ascii?Q?nsyLJtCEfdMzALhrSz1hjlPV0A6j9oyeruE/DZWyoCbRzOoaq+ggp/UhCtIb?= =?us-ascii?Q?O9FGGAeaaDkxDlL6ieIKvSFcbAWqHr7aGv+cqvCk/jKTat0SKugpalktpkvv?= =?us-ascii?Q?lclv5sj46DCxWiu77vkf7tqIPkS/QvqSJvSJOC/zm9LgADdQnDpN6WYbT89Z?= =?us-ascii?Q?vOIjXf5HdHu8N8fX81UfUE2aJ/zKNEFEUJSruwViUzED+0iqmTmnjCU4cZK7?= =?us-ascii?Q?XAMnQK9mE8b1lO3jZy06JPcOuyrvZV55/Zxk0XRQTbhF0tr45EL8bWb4qW48?= =?us-ascii?Q?oSe0gaE8vt0CvOx/xWDxeSjw1D3lIMOu21ZDHkIT59smAmwZCAndZM68gGLc?= =?us-ascii?Q?EASkteh5KPvd1XeYKJMGLL8xuipfAVUbN9v/jxf0xNjVpDks6DiPYCxY6jW3?= =?us-ascii?Q?cTVWqVJPpk/hr/P5m0lWuuT/l4M55hzCHny9keTM9XqE5jE7cBwnbkrTFa1O?= =?us-ascii?Q?KTVsI08TFeDLTua9wJXuJJX7orx+2LMnz0jpwr72toAI3nW1/gXBVDRXOZ0d?= =?us-ascii?Q?eYjJ6zbS/fk47cLqIB+f50wShkZWPWZ4sAd6OrOFKvl8epj/YwJAmhiTh0A0?= =?us-ascii?Q?IA=3D=3D?= Content-Type: multipart/mixed; boundary="_004_DM4PR12MB57969F1E205013C43E22FA24F7059DM4PR12MB5796namp_" MIME-Version: 1.0 X-OriginatorOrg: amd.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: DM4PR12MB5796.namprd12.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 93723b29-a254-4cb6-2d3b-08d9fde5207c X-MS-Exchange-CrossTenant-originalarrivaltime: 04 Mar 2022 13:44:38.2514 (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: JR41BrPrE+fXHsnkQG3/yrRHoEyYE9l0PztMW0aMYVaKG/vl2jWXB2fzZWvKgbFZY5mfgojUA7hbC2Ra5uiMDQ== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CY4PR12MB1334 X-Spam-Status: No, score=-12.9 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, HTML_MESSAGE, 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-Content-Filtered-By: Mailman/MimeDel 2.1.29 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: Fri, 04 Mar 2022 13:44:48 -0000 --_004_DM4PR12MB57969F1E205013C43E22FA24F7059DM4PR12MB5796namp_ Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: quoted-printable [AMD Official Use Only] Hi, For the below testcase, when compiled with clang compiler, debugger is not = able to print alias variable type or value. $ cat test.c int oldname =3D 1; extern int newname attribute((alias("oldname"))); int main () { return 0; } $ clang -g -O0 test.c $ gdb a.out (gdb) ptype oldname type =3D int (gdb) ptype newname type =3D (gdb) p oldname $1 =3D 1 (gdb) p newname 'newname' has unknown type; cast it to its declared type This is because clang is not emitting dwarf information for alias variable.= I have updated clang patch (originally from https://reviews.llvm.org/D1031= 31) to emit debug info for alias variable as imported entity (DW_TAG_import= ed_declaration): https://reviews.llvm.org/D120989 However, gdb cannot handle the imported declaration for alias variables. GC= C emits debug info for alias variables as DW_TAG_variable which gdb can han= dle. The discussions in the llvm bug report bug-50052 and above review links talk about why it is appro= priate to emit alias variable as DW_TAG_imported_declaration rather than DW= _TAG_variable. Refer section "3.2.3 Imported (or Renamed) Declaration Entri= es" in DWARF 5 specification. It was also previously discussed in gdb forum= in the below thread: https://sourceware.org/pipermail/gdb/2021-June/049509.html The attached gdb patch can handle DW_TAG_imported_declaration as alias vari= ables. This change fixes the failure in testcase: gdb.base/symbol-alias.exp This testcase is also updated to test nested (recursive) alias, static alia= see and deferred aliasee. Please review the below gdb patch (also attached). --- gdb/dwarf2/read.c | 113 ++++++++++++++++-------- gdb/testsuite/gdb.base/symbol-alias.exp | 23 ++++- gdb/testsuite/gdb.base/symbol-alias2.c | 10 +++ 3 files changed, 107 insertions(+), 39 deletions(-) diff --git a/gdb/dwarf2/read.c b/gdb/dwarf2/read.c index 10550336063..0f709d9ccc1 100644 --- a/gdb/dwarf2/read.c +++ b/gdb/dwarf2/read.c @@ -1132,6 +1132,10 @@ static void add_partial_subprogram (struct partial_d= ie_info *pdi, CORE_ADDR *lowpc, CORE_ADDR *highpc, int need_pc, struct dwarf2_cu *cu); +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 struct partial_die_info *load_partial_dies @@ -1332,7 +1336,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 int read_alias (struct die_info *die, struct dwarf2_cu *cu); static struct type *read_module_type (struct die_info *die, struct dwarf2_cu *cu); @@ -9742,9 +9746,11 @@ 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 (((cu->per_cu->lang =3D=3D language_c) + || (cu->per_cu->lang =3D=3D language_cplus)) + && 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; @@ -10212,18 +10218,20 @@ dwarf2_physname (const char *name, struct die_inf= o *die, struct dwarf2_cu *cu) return retval; } -/* Inspect DIE in CU for a namespace alias. If one exists, record - a new symbol for it. +#define MAX_NESTED_IMPORTED_DECLARATIONS 100 + +/* 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 1 if an alias was recorded, 0 otherwise. */ static int -read_namespace_alias (struct die_info *die, struct dwarf2_cu *cu) +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. */ + /* The die must have a name for namespace or variable alias */ attr =3D dwarf2_attr (die, DW_AT_name, cu); if (attr !=3D NULL) { @@ -10232,42 +10240,71 @@ read_namespace_alias (struct die_info *die, struc= t dwarf2_cu *cu) struct dwarf2_cu *imported_cu =3D cu; /* If the compiler has nested DW_AT_imported_declaration DIEs, - keep inspecting DIEs until we hit the underlying import. */ -#define MAX_NESTED_IMPORTED_DECLARATIONS 100 + keep inspecting DIEs until we hit the underlying import. */ for (num =3D 0; num < MAX_NESTED_IMPORTED_DECLARATIONS; ++num) - { - attr =3D dwarf2_attr (d, DW_AT_import, cu); - if (attr =3D=3D NULL) - break; + { + attr =3D dwarf2_attr (d, DW_AT_import, cu); + if (attr =3D=3D NULL) + return 0; - d =3D follow_die_ref (d, attr, &imported_cu); - if (d->tag !=3D DW_TAG_imported_declaration) - break; - } + d =3D follow_die_ref (d, attr, &imported_cu); + if (d->tag !=3D DW_TAG_imported_declaration) + break; + } if (num =3D=3D MAX_NESTED_IMPORTED_DECLARATIONS) - { - complaint (_("DIE at %s has too many recursively imported " - "declarations"), sect_offset_str (d->sect_off)); - return 0; - } + { + complaint (_("DIE at %s has too many recursively imported " + "declarations"), sect_offset_str (d->sect_off)); + return 0; + } 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) - { - /* 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; - } - } + { + struct type *type; + if (d->tag =3D=3D DW_TAG_variable) + { + /* This declaration is a 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); + if (attr !=3D nullptr) + { + var_decode_location (attr, sym, cu); + return 1; + } + else + { + /* We do not know the address of this symbol. + If it is an external symbol and we have type informat= ion + for it, enter the symbol as a LOC_UNRESOLVED symbol. + The address of the variable will then be determined f= rom + the minimal symbol table whenever the variable is + referenced. */ + attr =3D dwarf2_attr (d, DW_AT_external, imported_cu); + if (attr !=3D nullptr && attr->as_boolean () + && dwarf2_attr (d, DW_AT_type, imported_cu) !=3D NUL= L) + { + sym->set_aclass_index (LOC_UNRESOLVED); + return 1; + } + } + } + else + { + sect_offset sect_off =3D attr->get_ref_die_offset (); + type =3D get_die_type_at_offset (sect_off, cu->per_cu, cu->p= er_objfile); + if (type !=3D NULL && type->code () =3D=3D TYPE_CODE_NAMESPA= CE) + { + /* 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; + } + } + } } - return 0; } diff --git a/gdb/testsuite/gdb.base/symbol-alias.exp b/gdb/testsuite/gdb.ba= se/symbol-alias.exp index 2b53cc31053..1259c1daf1d 100644 --- a/gdb/testsuite/gdb.base/symbol-alias.exp +++ b/gdb/testsuite/gdb.base/symbol-alias.exp @@ -15,6 +15,7 @@ # along with this program. If not, see http://www.gnu.org/licenses/. standard_testfile symbol-alias.c symbol-alias2.c +set using_clang [test_compiler_info clang*] if { [prepare_for_testing "failed to prepare" ${testfile} [list $srcfile $s= rcfile2]] } { return -1 @@ -31,6 +32,26 @@ foreach f {"func" "func_alias"} { } # Variables. -foreach v {"g_var_s" "g_var_s_alias"} { +foreach v {"g_var_s" "g_var_s_alias" "g_var_s_alias2"} { gdb_test "p $v" "=3D {field1 =3D 1, field2 =3D 2}" } + +# Static Variable. +foreach v {"g_var" "g_var_alias"} { + gdb_test "p $v" " =3D 1" +} + +# 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" + } + } +} diff --git a/gdb/testsuite/gdb.base/symbol-alias2.c b/gdb/testsuite/gdb.bas= e/symbol-alias2.c index 34f4e121e25..79b3195caf5 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,11 @@ 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; -- --_004_DM4PR12MB57969F1E205013C43E22FA24F7059DM4PR12MB5796namp_ Content-Type: application/octet-stream; name="Debug-support-for-global-variable-alias.patch" Content-Description: Debug-support-for-global-variable-alias.patch Content-Disposition: attachment; filename="Debug-support-for-global-variable-alias.patch"; size=9375; creation-date="Fri, 04 Mar 2022 13:40:32 GMT"; modification-date="Fri, 04 Mar 2022 13:44:37 GMT" Content-Transfer-Encoding: base64 U3ViamVjdDogW1BBVENIXSBEZWJ1ZyBzdXBwb3J0IGZvciBnbG9iYWwgdmFyaWFibGUgYWxpYXMN Cg0KV2hlbiBjbGFuZyBlbWl0cyB0aGUgZHdhcmYgaW5mb3JtYXRpb24gb2YgZ2xvYmFsIHZhcmlh YmxlIGFsaWFzDQphcyBEV19UQUdfaW1wb3J0ZWRfZGVjbGFyYXRpb24sIGdkYiBkb2VzIG5vdCBo YW5kbGUgaXQuIEdEQiByZWFkcw0KdGhpcyB0YWcgYXMgQysrL2ZvcnRyYW4gaW1wb3J0ZWQgZGVj bGFyYXRpb24uIEFkZGVkIHN1cHBvcnQgdG8NCmhhbmRsZSB0aGlzIHRhZyBhcyB2YXJpYWJsZSBh bGlhcy4NCg0KVGhpcyBjaGFuZ2UgZml4ZXMgdGhlIGZhaWx1cmUgaW4gdGVzdGNhc2U6DQogICAg ICAgICAgIGdkYi5iYXNlL3N5bWJvbC1hbGlhcy5leHANClRoaXMgdGVzdGNhc2UgaXMgYWxzbyB1 cGRhdGVkIHRvIHRlc3QgbmVzdGVkIChyZWN1cnNpdmUpIGFsaWFzLA0Kc3RhdGljIGFsaWFzZWUg YW5kIGRlZmVycmVkIGFsaWFzZWUuDQoNCi0tLQ0KIGdkYi9kd2FyZjIvcmVhZC5jICAgICAgICAg ICAgICAgICAgICAgICB8IDExMyArKysrKysrKysrKysrKysrLS0tLS0tLS0NCiBnZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL3N5bWJvbC1hbGlhcy5leHAgfCAgMjMgKysrKy0NCiBnZGIvdGVzdHN1aXRl L2dkYi5iYXNlL3N5bWJvbC1hbGlhczIuYyAgfCAgMTAgKysrDQogMyBmaWxlcyBjaGFuZ2VkLCAx MDcgaW5zZXJ0aW9ucygrKSwgMzkgZGVsZXRpb25zKC0pDQoNCmRpZmYgLS1naXQgYS9nZGIvZHdh cmYyL3JlYWQuYyBiL2dkYi9kd2FyZjIvcmVhZC5jDQppbmRleCAxMDU1MDMzNjA2My4uMGY3MDlk OWNjYzEgMTAwNjQ0DQotLS0gYS9nZGIvZHdhcmYyL3JlYWQuYw0KKysrIGIvZ2RiL2R3YXJmMi9y ZWFkLmMNCkBAIC0xMTMyLDYgKzExMzIsMTAgQEAgc3RhdGljIHZvaWQgYWRkX3BhcnRpYWxfc3Vi cHJvZ3JhbSAoc3RydWN0IHBhcnRpYWxfZGllX2luZm8gKnBkaSwNCiAJCQkJICAgIENPUkVfQURE UiAqbG93cGMsIENPUkVfQUREUiAqaGlnaHBjLA0KIAkJCQkgICAgaW50IG5lZWRfcGMsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KTsNCiANCitzdGF0aWMgdm9pZCB2YXJfZGVjb2RlX2xvY2F0aW9uIChz dHJ1Y3QgYXR0cmlidXRlICphdHRyLA0KKyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg IHN0cnVjdCBzeW1ib2wgKnN5bSwNCisgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBz dHJ1Y3QgZHdhcmYyX2N1ICpjdSk7DQorDQogc3RhdGljIHVuc2lnbmVkIGludCBwZWVrX2FiYnJl dl9jb2RlIChiZmQgKiwgY29uc3QgZ2RiX2J5dGUgKik7DQogDQogc3RhdGljIHN0cnVjdCBwYXJ0 aWFsX2RpZV9pbmZvICpsb2FkX3BhcnRpYWxfZGllcw0KQEAgLTEzMzIsNyArMTMzNiw3IEBAIHN0 YXRpYyBzdHJ1Y3QgdXNpbmdfZGlyZWN0ICoqdXNpbmdfZGlyZWN0aXZlcyAoc3RydWN0IGR3YXJm Ml9jdSAqY3UpOw0KIA0KIHN0YXRpYyB2b2lkIHJlYWRfaW1wb3J0X3N0YXRlbWVudCAoc3RydWN0 IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKik7DQogDQotc3RhdGljIGludCByZWFk X25hbWVzcGFjZV9hbGlhcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVjdCBkd2FyZjJfY3Ug KmN1KTsNCitzdGF0aWMgaW50IHJlYWRfYWxpYXMgKHN0cnVjdCBkaWVfaW5mbyAqZGllLCBzdHJ1 Y3QgZHdhcmYyX2N1ICpjdSk7DQogDQogc3RhdGljIHN0cnVjdCB0eXBlICpyZWFkX21vZHVsZV90 eXBlIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwNCiAJCQkJICAgICAgc3RydWN0IGR3YXJmMl9jdSAq Y3UpOw0KQEAgLTk3NDIsOSArOTc0NiwxMSBAQCBwcm9jZXNzX2RpZSAoc3RydWN0IGRpZV9pbmZv ICpkaWUsIHN0cnVjdCBkd2FyZjJfY3UgKmN1KQ0KICAgICAgIGJyZWFrOw0KICAgICBjYXNlIERX X1RBR19pbXBvcnRlZF9kZWNsYXJhdGlvbjoNCiAgICAgICBjdS0+cHJvY2Vzc2luZ19oYXNfbmFt ZXNwYWNlX2luZm8gPSB0cnVlOw0KLSAgICAgIGlmIChyZWFkX25hbWVzcGFjZV9hbGlhcyAoZGll LCBjdSkpDQorICAgICAgaWYgKCgoY3UtPnBlcl9jdS0+bGFuZyA9PSBsYW5ndWFnZV9jKQ0KKyAg ICAgICAgICAgIHx8IChjdS0+cGVyX2N1LT5sYW5nID09IGxhbmd1YWdlX2NwbHVzKSkNCisJICAg ICAgICAgICAgICAgICAgICAgJiYgcmVhZF9hbGlhcyAoZGllLCBjdSkpDQogCWJyZWFrOw0KLSAg ICAgIC8qIFRoZSBkZWNsYXJhdGlvbiBpcyBub3QgYSBnbG9iYWwgbmFtZXNwYWNlIGFsaWFzLiAg Ki8NCisgICAgICAvKiBUaGUgZGVjbGFyYXRpb24gaXMgbm90IGEgZ2xvYmFsIG5hbWVzcGFjZSBv ciB2YXJpYWJsZSBhbGlhcy4gKi8NCiAgICAgICAvKiBGYWxsIHRocm91Z2guICAqLw0KICAgICBj YXNlIERXX1RBR19pbXBvcnRlZF9tb2R1bGU6DQogICAgICAgY3UtPnByb2Nlc3NpbmdfaGFzX25h bWVzcGFjZV9pbmZvID0gdHJ1ZTsNCkBAIC0xMDIxMiwxOCArMTAyMTgsMjAgQEAgZHdhcmYyX3Bo eXNuYW1lIChjb25zdCBjaGFyICpuYW1lLCBzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0IGR3 YXJmMl9jdSAqY3UpDQogICByZXR1cm4gcmV0dmFsOw0KIH0NCiANCi0vKiBJbnNwZWN0IERJRSBp biBDVSBmb3IgYSBuYW1lc3BhY2UgYWxpYXMuICBJZiBvbmUgZXhpc3RzLCByZWNvcmQNCi0gICBh IG5ldyBzeW1ib2wgZm9yIGl0Lg0KKyNkZWZpbmUgTUFYX05FU1RFRF9JTVBPUlRFRF9ERUNMQVJB VElPTlMgMTAwDQorDQorLyogSW5zcGVjdCBESUUgaW4gQ1UgZm9yIGEgbmFtZXNwYWNlIGFsaWFz IG9yIGEgdmFyaWFibGUNCisgICB3aXRoIGFsaWFzIGF0dHJpYnV0ZS4gSWYgb25lIGV4aXN0cywg cmVjb3JkIGEgbmV3IHN5bWJvbA0KKyAgIGZvciBpdC4NCiANCi0gICBSZXR1cm5zIDEgaWYgYSBu YW1lc3BhY2UgYWxpYXMgd2FzIHJlY29yZGVkLCAwIG90aGVyd2lzZS4gICovDQorICAgUmV0dXJu cyAxIGlmIGFuIGFsaWFzIHdhcyByZWNvcmRlZCwgMCBvdGhlcndpc2UuICovDQogDQogc3RhdGlj IGludA0KLXJlYWRfbmFtZXNwYWNlX2FsaWFzIChzdHJ1Y3QgZGllX2luZm8gKmRpZSwgc3RydWN0 IGR3YXJmMl9jdSAqY3UpDQorcmVhZF9hbGlhcyAoc3RydWN0IGRpZV9pbmZvICpkaWUsIHN0cnVj dCBkd2FyZjJfY3UgKmN1KQ0KIHsNCiAgIHN0cnVjdCBhdHRyaWJ1dGUgKmF0dHI7DQogDQotICAv KiBJZiB0aGUgZGllIGRvZXMgbm90IGhhdmUgYSBuYW1lLCB0aGlzIGlzIG5vdCBhIG5hbWVzcGFj ZQ0KLSAgICAgYWxpYXMuICAqLw0KKyAgLyogVGhlIGRpZSBtdXN0IGhhdmUgYSBuYW1lIGZvciBu YW1lc3BhY2Ugb3IgdmFyaWFibGUgYWxpYXMgKi8NCiAgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZGll LCBEV19BVF9uYW1lLCBjdSk7DQogICBpZiAoYXR0ciAhPSBOVUxMKQ0KICAgICB7DQpAQCAtMTAy MzIsNDIgKzEwMjQwLDcxIEBAIHJlYWRfbmFtZXNwYWNlX2FsaWFzIChzdHJ1Y3QgZGllX2luZm8g KmRpZSwgc3RydWN0IGR3YXJmMl9jdSAqY3UpDQogICAgICAgc3RydWN0IGR3YXJmMl9jdSAqaW1w b3J0ZWRfY3UgPSBjdTsNCiANCiAgICAgICAvKiBJZiB0aGUgY29tcGlsZXIgaGFzIG5lc3RlZCBE V19BVF9pbXBvcnRlZF9kZWNsYXJhdGlvbiBESUVzLA0KLQkga2VlcCBpbnNwZWN0aW5nIERJRXMg dW50aWwgd2UgaGl0IHRoZSB1bmRlcmx5aW5nIGltcG9ydC4gICovDQotI2RlZmluZSBNQVhfTkVT VEVEX0lNUE9SVEVEX0RFQ0xBUkFUSU9OUyAxMDANCisgICAgICAgICBrZWVwIGluc3BlY3Rpbmcg RElFcyB1bnRpbCB3ZSBoaXQgdGhlIHVuZGVybHlpbmcgaW1wb3J0LiAqLw0KICAgICAgIGZvciAo bnVtID0gMDsgbnVtICA8IE1BWF9ORVNURURfSU1QT1JURURfREVDTEFSQVRJT05TOyArK251bSkN Ci0Jew0KLQkgIGF0dHIgPSBkd2FyZjJfYXR0ciAoZCwgRFdfQVRfaW1wb3J0LCBjdSk7DQotCSAg aWYgKGF0dHIgPT0gTlVMTCkNCi0JICAgIGJyZWFrOw0KKyAgICAgICAgew0KKyAgICAgICAgICBh dHRyID0gZHdhcmYyX2F0dHIgKGQsIERXX0FUX2ltcG9ydCwgY3UpOw0KKyAgICAgICAgICBpZiAo YXR0ciA9PSBOVUxMKQ0KKyAgICAgICAgICAgIHJldHVybiAwOw0KIA0KLQkgIGQgPSBmb2xsb3df ZGllX3JlZiAoZCwgYXR0ciwgJmltcG9ydGVkX2N1KTsNCi0JICBpZiAoZC0+dGFnICE9IERXX1RB R19pbXBvcnRlZF9kZWNsYXJhdGlvbikNCi0JICAgIGJyZWFrOw0KLQl9DQorICAgICAgICAgIGQg PSBmb2xsb3dfZGllX3JlZiAoZCwgYXR0ciwgJmltcG9ydGVkX2N1KTsNCisgICAgICAgICAgaWYg KGQtPnRhZyAhPSBEV19UQUdfaW1wb3J0ZWRfZGVjbGFyYXRpb24pDQorICAgICAgICAgICAgYnJl YWs7DQorICAgICAgICB9DQogDQogICAgICAgaWYgKG51bSA9PSBNQVhfTkVTVEVEX0lNUE9SVEVE X0RFQ0xBUkFUSU9OUykNCi0Jew0KLQkgIGNvbXBsYWludCAoXygiRElFIGF0ICVzIGhhcyB0b28g bWFueSByZWN1cnNpdmVseSBpbXBvcnRlZCAiDQotCQkgICAgICAgImRlY2xhcmF0aW9ucyIpLCBz ZWN0X29mZnNldF9zdHIgKGQtPnNlY3Rfb2ZmKSk7DQotCSAgcmV0dXJuIDA7DQotCX0NCisgICAg ICAgIHsNCisgICAgICAgICAgY29tcGxhaW50IChfKCJESUUgYXQgJXMgaGFzIHRvbyBtYW55IHJl Y3Vyc2l2ZWx5IGltcG9ydGVkICINCisgICAgICAgICAgICAgICAgICAgICAgICJkZWNsYXJhdGlv bnMiKSwgc2VjdF9vZmZzZXRfc3RyIChkLT5zZWN0X29mZikpOw0KKyAgICAgICAgICByZXR1cm4g MDsNCisgICAgICAgIH0NCiANCiAgICAgICBpZiAoYXR0ciAhPSBOVUxMKQ0KLQl7DQotCSAgc3Ry dWN0IHR5cGUgKnR5cGU7DQotCSAgc2VjdF9vZmZzZXQgc2VjdF9vZmYgPSBhdHRyLT5nZXRfcmVm X2RpZV9vZmZzZXQgKCk7DQotDQotCSAgdHlwZSA9IGdldF9kaWVfdHlwZV9hdF9vZmZzZXQgKHNl Y3Rfb2ZmLCBjdS0+cGVyX2N1LCBjdS0+cGVyX29iamZpbGUpOw0KLQkgIGlmICh0eXBlICE9IE5V TEwgJiYgdHlwZS0+Y29kZSAoKSA9PSBUWVBFX0NPREVfTkFNRVNQQUNFKQ0KLQkgICAgew0KLQkg ICAgICAvKiBUaGlzIGRlY2xhcmF0aW9uIGlzIGEgZ2xvYmFsIG5hbWVzcGFjZSBhbGlhcy4gIEFk ZA0KLQkJIGEgc3ltYm9sIGZvciBpdCB3aG9zZSB0eXBlIGlzIHRoZSBhbGlhc2VkIG5hbWVzcGFj ZS4gICovDQotCSAgICAgIG5ld19zeW1ib2wgKGRpZSwgdHlwZSwgY3UpOw0KLQkgICAgICByZXR1 cm4gMTsNCi0JICAgIH0NCi0JfQ0KKyAgICAgICAgew0KKyAgICAgICAgICBzdHJ1Y3QgdHlwZSAq dHlwZTsNCisgICAgICAgICAgaWYgKGQtPnRhZyA9PSBEV19UQUdfdmFyaWFibGUpDQorICAgICAg ICAgICAgew0KKwkgICAgICAvKiBUaGlzIGRlY2xhcmF0aW9uIGlzIGEgZ2xvYmFsIHZhcmlhYmxl IGFsaWFzLiBBZGQNCisJICAgICAgICAgYSBzeW1ib2wgZm9yIGl0IHdob3NlIHR5cGUgaXMgc2Ft ZSBhcyBhbGlhc2VkIHZhcmlhYmxlLiAqLw0KKyAgICAgICAgICAgICAgdHlwZSA9IGRpZV90eXBl IChkLCBpbXBvcnRlZF9jdSk7DQorICAgICAgICAgICAgICBzdHJ1Y3Qgc3ltYm9sICpzeW0gPSBu ZXdfc3ltYm9sKGRpZSwgdHlwZSwgY3UpOw0KKyAgICAgICAgICAgICAgYXR0ciA9IGR3YXJmMl9h dHRyIChkLCBEV19BVF9sb2NhdGlvbiwgaW1wb3J0ZWRfY3UpOw0KKyAgICAgICAgICAgICAgaWYg KGF0dHIgIT0gbnVsbHB0cikNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAg IHZhcl9kZWNvZGVfbG9jYXRpb24gKGF0dHIsIHN5bSwgY3UpOw0KKyAgICAgICAgICAgICAgICAg IHJldHVybiAxOw0KKyAgICAgICAgICAgICAgICB9DQorICAgICAgICAgICAgICBlbHNlDQorICAg ICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAgICAvKiBXZSBkbyBub3Qga25vdyB0aGUg YWRkcmVzcyBvZiB0aGlzIHN5bWJvbC4NCisgICAgICAgICAgICAgICAgICAgICBJZiBpdCBpcyBh biBleHRlcm5hbCBzeW1ib2wgYW5kIHdlIGhhdmUgdHlwZSBpbmZvcm1hdGlvbg0KKyAgICAgICAg ICAgICAgICAgICAgIGZvciBpdCwgZW50ZXIgdGhlIHN5bWJvbCBhcyBhIExPQ19VTlJFU09MVkVE IHN5bWJvbC4NCisgICAgICAgICAgICAgICAgICAgICBUaGUgYWRkcmVzcyBvZiB0aGUgdmFyaWFi bGUgd2lsbCB0aGVuIGJlIGRldGVybWluZWQgZnJvbQ0KKyAgICAgICAgICAgICAgICAgICAgIHRo ZSBtaW5pbWFsIHN5bWJvbCB0YWJsZSB3aGVuZXZlciB0aGUgdmFyaWFibGUgaXMNCisgICAgICAg ICAgICAgICAgICAgICByZWZlcmVuY2VkLiAgKi8NCisgICAgICAgICAgICAgICAgICBhdHRyID0g ZHdhcmYyX2F0dHIgKGQsIERXX0FUX2V4dGVybmFsLCBpbXBvcnRlZF9jdSk7DQorICAgICAgICAg ICAgICAgICAgaWYgKGF0dHIgIT0gbnVsbHB0ciAmJiBhdHRyLT5hc19ib29sZWFuICgpDQorICAg ICAgICAgICAgICAgICAgICAgICYmIGR3YXJmMl9hdHRyIChkLCBEV19BVF90eXBlLCBpbXBvcnRl ZF9jdSkgIT0gTlVMTCkNCisgICAgICAgICAgICAgICAgICAgIHsNCisgICAgICAgICAgICAgICAg ICAgICAgc3ltLT5zZXRfYWNsYXNzX2luZGV4IChMT0NfVU5SRVNPTFZFRCk7DQorICAgICAgICAg ICAgICAgICAgICAgIHJldHVybiAxOw0KKyAgICAgICAgICAgICAgICAgICAgfQ0KKyAgICAgICAg ICAgICAgICB9DQorICAgICAgICAgICAgfQ0KKyAgICAgICAgICBlbHNlDQorICAgICAgICAgICAg ew0KKyAgICAgICAgICAgICAgc2VjdF9vZmZzZXQgc2VjdF9vZmYgPSBhdHRyLT5nZXRfcmVmX2Rp ZV9vZmZzZXQgKCk7DQorICAgICAgICAgICAgICB0eXBlID0gZ2V0X2RpZV90eXBlX2F0X29mZnNl dCAoc2VjdF9vZmYsIGN1LT5wZXJfY3UsIGN1LT5wZXJfb2JqZmlsZSk7DQorICAgICAgICAgICAg ICBpZiAodHlwZSAhPSBOVUxMICYmIHR5cGUtPmNvZGUgKCkgPT0gVFlQRV9DT0RFX05BTUVTUEFD RSkNCisgICAgICAgICAgICAgICAgew0KKyAgICAgICAgICAgICAgICAgIC8qIFRoaXMgZGVjbGFy YXRpb24gaXMgYSBnbG9iYWwgbmFtZXNwYWNlIGFsaWFzLiBBZGQNCisgICAgICAgICAgICAgICAg ICAgICBhIHN5bWJvbCBmb3IgaXQgd2hvc2UgdHlwZSBpcyB0aGUgYWxpYXNlZCBuYW1lc3BhY2Uu ICovDQorICAgICAgICAgICAgICAgICAgbmV3X3N5bWJvbCAoZGllLCB0eXBlLCBjdSk7DQorICAg ICAgICAgICAgICAgICAgcmV0dXJuIDE7DQorICAgICAgICAgICAgICAgIH0NCisgICAgICAgICAg ICB9DQorICAgICAgICB9DQogICAgIH0NCi0NCiAgIHJldHVybiAwOw0KIH0NCiANCmRpZmYgLS1n aXQgYS9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3N5bWJvbC1hbGlhcy5leHAgYi9nZGIvdGVzdHN1 aXRlL2dkYi5iYXNlL3N5bWJvbC1hbGlhcy5leHANCmluZGV4IDJiNTNjYzMxMDUzLi4xMjU5YzFk YWYxZCAxMDA2NDQNCi0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc3ltYm9sLWFsaWFzLmV4 cA0KKysrIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zeW1ib2wtYWxpYXMuZXhwDQpAQCAtMTUs NiArMTUsNyBAQA0KICMgYWxvbmcgd2l0aCB0aGlzIHByb2dyYW0uICBJZiBub3QsIHNlZSA8aHR0 cDovL3d3dy5nbnUub3JnL2xpY2Vuc2VzLz4uDQogDQogc3RhbmRhcmRfdGVzdGZpbGUgc3ltYm9s LWFsaWFzLmMgc3ltYm9sLWFsaWFzMi5jDQorc2V0IHVzaW5nX2NsYW5nIFt0ZXN0X2NvbXBpbGVy X2luZm8gY2xhbmcqXQ0KIA0KIGlmIHsgW3ByZXBhcmVfZm9yX3Rlc3RpbmcgImZhaWxlZCB0byBw cmVwYXJlIiAke3Rlc3RmaWxlfSBbbGlzdCAkc3JjZmlsZSAkc3JjZmlsZTJdXSB9IHsNCiAgICAg cmV0dXJuIC0xDQpAQCAtMzEsNiArMzIsMjYgQEAgZm9yZWFjaCBmIHsiZnVuYyIgImZ1bmNfYWxp YXMifSB7DQogfQ0KIA0KICMgVmFyaWFibGVzLg0KLWZvcmVhY2ggdiB7ImdfdmFyX3MiICJnX3Zh cl9zX2FsaWFzIn0gew0KK2ZvcmVhY2ggdiB7ImdfdmFyX3MiICJnX3Zhcl9zX2FsaWFzIiAiZ192 YXJfc19hbGlhczIifSB7DQogICAgIGdkYl90ZXN0ICJwICR2IiAiPSB7ZmllbGQxID0gMSwgZmll bGQyID0gMn0iDQogfQ0KKw0KKyMgU3RhdGljIFZhcmlhYmxlLg0KK2ZvcmVhY2ggdiB7ImdfdmFy IiAiZ192YXJfYWxpYXMifSB7DQorICAgIGdkYl90ZXN0ICJwICR2IiAiID0gMSINCit9DQorDQor IyBEZWZlcnJlZCBWYXJpYWJsZS4NCitnZGJfdGVzdCAicCBnX2RlZl92YXIiICIgPSAyIg0KK2dk Yl90ZXN0X211bHRpcGxlICJwIGdfZGVmX3Zhcl9hbGlhcyIgInAgZ19kZWZfdmFyX2FsaWFzIiB7 DQorICAgIC1yZSAgIiA9IDIuKiRnZGJfcHJvbXB0ICQiIHsNCisgICAgICAgIHBhc3MgInByaW50 IGFsaWFzIG9mIGRlZmVycmVkIHZhcmlhYmxlIg0KKyAgICB9DQorICAgIC1yZSAgIi4qaGFzIHVu a25vd24gdHlwZTsgY2FzdCBpdCB0byBpdHMgZGVjbGFyZWQgdHlwZS4qJGdkYl9wcm9tcHQgJCIg ew0KKyAgICAgICAgaWYgeyAkdXNpbmdfY2xhbmcgfSB7DQorICAgICAgICAgIHhmYWlsICJwcmlu dCBhbGlhcyBvZiBkZWZlcnJlZCB2YXJpYWJsZSINCisgICAgICAgIH0gZWxzZSB7DQorICAgICAg ICAgIGZhaWwgInByaW50IGFsaWFzIG9mIGRlZmVycmVkIHZhcmlhYmxlIg0KKyAgICAgICAgfQ0K KyAgICB9DQorfQ0KZGlmZiAtLWdpdCBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJhc2Uvc3ltYm9sLWFs aWFzMi5jIGIvZ2RiL3Rlc3RzdWl0ZS9nZGIuYmFzZS9zeW1ib2wtYWxpYXMyLmMNCmluZGV4IDM0 ZjRlMTIxZTI1Li43OWIzMTk1Y2FmNSAxMDA2NDQNCi0tLSBhL2dkYi90ZXN0c3VpdGUvZ2RiLmJh c2Uvc3ltYm9sLWFsaWFzMi5jDQorKysgYi9nZGIvdGVzdHN1aXRlL2dkYi5iYXNlL3N5bWJvbC1h bGlhczIuYw0KQEAgLTIzLDYgKzIzLDggQEAgc3RydWN0IFMNCiANCiBzdHJ1Y3QgUyBnX3Zhcl9z ID0geyAxLCAyIH07DQogDQorc3RhdGljIGludCBnX3ZhciA9IDE7DQorDQogI2lmZGVmIF9fY3Bs dXNwbHVzDQogLyogU28gdGhhdCB0aGUgYWxpYXMgYXR0cmlidXRlIGJlbG93IHdvcmsgd2l0aG91 dCBoYXZpbmcgdG8gZmlndXJlIG91dA0KICAgIHRoaXMgZnVuY3Rpb24ncyBtYW5nbGVkIG5hbWUu ICAqLw0KQEAgLTM4LDMgKzQwLDExIEBAIGZ1bmMgKHZvaWQpDQogc3RydWN0IFMgKmZ1bmNfYWxp YXMgKHZvaWQpIF9fYXR0cmlidXRlX18gKChhbGlhcyAoImZ1bmMiKSkpOw0KIA0KIGV4dGVybiBz dHJ1Y3QgUyBnX3Zhcl9zX2FsaWFzIF9fYXR0cmlidXRlX18gKChhbGlhcyAoImdfdmFyX3MiKSkp Ow0KKw0KK2V4dGVybiBzdHJ1Y3QgUyBnX3Zhcl9zX2FsaWFzMiBfX2F0dHJpYnV0ZV9fICgoYWxp YXMgKCJnX3Zhcl9zX2FsaWFzIikpKTsNCisNCitleHRlcm4gaW50IGdfdmFyX2FsaWFzIF9fYXR0 cmlidXRlX18gKChhbGlhcyAoImdfdmFyIikpKTsNCisNCitleHRlcm4gaW50IGdfZGVmX3Zhcl9h bGlhcyBfX2F0dHJpYnV0ZV9fICgoYWxpYXMgKCJnX2RlZl92YXIiKSkpOw0KKw0KK2ludCBnX2Rl Zl92YXIgPSAyOw0KLS0gDQoyLjI1LjENCg0K --_004_DM4PR12MB57969F1E205013C43E22FA24F7059DM4PR12MB5796namp_--