From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mga12.intel.com (mga12.intel.com [192.55.52.136]) by sourceware.org (Postfix) with ESMTPS id 23F253857C62 for ; Tue, 18 Jan 2022 19:11:18 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 23F253857C62 X-IronPort-AV: E=McAfee;i="6200,9189,10230"; a="224870503" X-IronPort-AV: E=Sophos;i="5.88,297,1635231600"; d="scan'208";a="224870503" Received: from fmsmga007.fm.intel.com ([10.253.24.52]) by fmsmga106.fm.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 18 Jan 2022 11:11:17 -0800 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.88,297,1635231600"; d="scan'208";a="530384304" Received: from orsmsx606.amr.corp.intel.com ([10.22.229.19]) by fmsmga007.fm.intel.com with ESMTP; 18 Jan 2022 11:11:17 -0800 Received: from orsmsx611.amr.corp.intel.com (10.22.229.24) by ORSMSX606.amr.corp.intel.com (10.22.229.19) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 18 Jan 2022 11:11:16 -0800 Received: from orsmsx602.amr.corp.intel.com (10.22.229.15) by ORSMSX611.amr.corp.intel.com (10.22.229.24) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20; Tue, 18 Jan 2022 11:11:15 -0800 Received: from ORSEDG601.ED.cps.intel.com (10.7.248.6) by orsmsx602.amr.corp.intel.com (10.22.229.15) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2308.20 via Frontend Transport; Tue, 18 Jan 2022 11:11:15 -0800 Received: from NAM10-BN7-obe.outbound.protection.outlook.com (104.47.70.104) by edgegateway.intel.com (134.134.137.102) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.1.2308.20; Tue, 18 Jan 2022 11:11:15 -0800 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=bftvotoXmCFt9QZlirT9Mv9ZmE7EzuOUPO3ZZVHo0XCHviqenJ27AzpV5Kv/cide/95LetsZceH1j9yyNt5Fhoc22iMKBMZkHadrlQVLgksvTHAqfLV7sVSOu2W9z37ZpT32NPLqvNHXkIr+VBImZ3ZOjwOwV9p9Y4MjmLKlZP6E5Wc0Are5g3cxwUgjKDkLNnRB8XckKynApE+X2Pbwt65fWUa5FTiN3YEwslGBhWj+yNOn+HEn8Zdolgsaxg3EauGrlI7YH0qTUUNqCG/HWcKdFtLu1uaE1wBq5SbwQ6Ny6oxCYBYAF2rCKc46hK/3YsfZWfQIlHWXvH6x8y5MVQ== 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=gO7hjE3SyQcETfhDI3VAz72Xb2Cbi/AxQtlA+WMiGNw=; b=HAo/697ExoV+QBPpq6EWxBaGjU2+hdumxTZRMvp2B6gKAi2EjgSIzxFqcdlNwGTyduumqVJ9oieOZwhJEe7Bfe3ZOAJ+Y1VO41DW7wMGYBueUMKi0Kv1erzCCWsQg6doY3nrbS3aAjMf2LeQejxrmydvJQ317j1aMSOvmvM6CZYQkZkzXSggfnT10nQ4FjZSE+6A/e0jHgvPMJU/NXPNbPZElajUYNe7HBlHjOWFbBliTYeNT+Tgh+O/WGIssJWV3sFUbEAeZFVxqMJiP1kDvo9EjIdL6jr0glj9jA9RbJ8BQlnbF1+Zis8HIhruUgv3C/N+0T6cEhuieqy3p1Wbuw== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=intel.com; dmarc=pass action=none header.from=intel.com; dkim=pass header.d=intel.com; arc=none Received: from BYAPR11MB3590.namprd11.prod.outlook.com (2603:10b6:a03:b2::23) by BL1PR11MB5478.namprd11.prod.outlook.com (2603:10b6:208:31d::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.4909.7; Tue, 18 Jan 2022 19:11:13 +0000 Received: from BYAPR11MB3590.namprd11.prod.outlook.com ([fe80::698d:2e18:3937:69ce]) by BYAPR11MB3590.namprd11.prod.outlook.com ([fe80::698d:2e18:3937:69ce%2]) with mapi id 15.20.4888.014; Tue, 18 Jan 2022 19:11:12 +0000 From: "Schimpe, Christina" To: "gdb-patches@sourceware.org" Subject: [PING] [PATCH v3 1/1] gdb: Use a typedef's scoped type name to identify local typedefs Thread-Topic: [PING] [PATCH v3 1/1] gdb: Use a typedef's scoped type name to identify local typedefs Thread-Index: AdgMnvweurOsrxvzTH25NqtTiX7i7Q== Date: Tue, 18 Jan 2022 19:11:12 +0000 Message-ID: Accept-Language: en-US Content-Language: en-US X-MS-Has-Attach: X-MS-TNEF-Correlator: dlp-product: dlpe-windows dlp-version: 11.6.200.16 dlp-reaction: no-action x-ms-publictraffictype: Email x-ms-office365-filtering-correlation-id: 48565962-4822-4947-ef02-08d9dab64b1e x-ms-traffictypediagnostic: BL1PR11MB5478:EE_ x-microsoft-antispam-prvs: x-ms-oob-tlc-oobclassifiers: OLM:8273; x-ms-exchange-senderadcheck: 1 x-ms-exchange-antispam-relay: 0 x-microsoft-antispam: BCL:0; x-microsoft-antispam-message-info: EbBtCzmCckZoYtYl3wjUoQiHWAAfqSOq+NK9WdO46GZMNgjF4qPiZIi7H4YCzI1l+WNOv7VNe7W8DOeA5qDWVdikTTASrVmO3k9IflDeXA6sjGpLXdWp2vYac2BwsBV3y7Mny4mVWCK7XRvMCbAcbirntqMMlnBEXNECXG705qgGkbkIPTRvgru2yOe44YiY/3nlF4PJaBU6uicIv/WV6f08fWZlD9EE1HpkhlegLe3sIatgmiyXZTt/yWF/NFdq/8DtH5BPl/qb6nDXvC6e4paUDC0xqJhxlztFKhYQrEic2FnID0+GgskqQsnNP/p9x9ooFcr8aZ7WcJ+zxR1YqedbxYKP/2OpIJV5NuWr29e+oG4CGlzK2mjwOK1+TmllFtuB8v6ZskDmgBTjwu1p4o1+GQwpp9byRlX8y7lXyOAakF9noP5XxzztwrLj6WKVGZHsCVXOnBV8kE39ZcnGxxBpJCbvpaU86UC6blwdDDUAVsbvyJlyiZfR0cGh+URiq54YMkWOg5RbyPbJPDr2stH0auy4nt8+1NajY6AavtNZiGj2b9poLGMTVf2cVZN9wTEDZmHEygMjwWrhQ8DNEw1pJKMsTFt9lDvErBCaj1tgW5xihRms2aM3on+cpliMQr5j8xad/b1ljmY06U+JnKB3agga2OiCJYLnKdYEPoCS1QkFdG30gwMOAAwFatfG+Vf7ndl9bjFBI/LNy/MIiw== x-forefront-antispam-report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR11MB3590.namprd11.prod.outlook.com; PTR:; CAT:NONE; SFS:(366004)(122000001)(38100700002)(52536014)(8936002)(33656002)(71200400001)(8676002)(55016003)(66446008)(64756008)(66556008)(66476007)(76116006)(66946007)(508600001)(316002)(186003)(86362001)(53546011)(6506007)(6916009)(7696005)(26005)(83380400001)(2906002)(5660300002)(9686003)(38070700005)(82960400001); DIR:OUT; SFP:1102; x-ms-exchange-antispam-messagedata-chunkcount: 1 x-ms-exchange-antispam-messagedata-0: =?us-ascii?Q?sccbqOVf67TTrkqkoMkeTq+2qbXa/b+/S7cqitwgDp+fCeR1sSRXyicWfRoV?= =?us-ascii?Q?4WW/bTtfl1DG45WfMlRfG7tzInl5ZX9WA3p5CkKbd1tF2zVchNh+v/9+XpEV?= =?us-ascii?Q?u/m1hbHt2Yg0+xvYS1Apqf6JIi7RQU6kfh+KLRqW7CdfAzOAuiedot/FeERP?= =?us-ascii?Q?W77R7T/puQMTH1DPFXkuWhoIF6Ro4BLozb3k7ARz0o+A7W2u3q7IHqW8sm8s?= =?us-ascii?Q?VpqIPDKgbVIkrZs0ptrFspcXZinl/HVWjwdlyMsFi1l7fqrr/hgMUFg7M2e2?= =?us-ascii?Q?bTSZCrijjqJmXvbXJP07k+9vufLo+PHm+Vi3a7xqPaU3i6VcFV2sW+fgZPKL?= =?us-ascii?Q?T/UAx5ZVsOqQNftYXNt7a7K4eIxLpVtwOOxAU0SQNhrmmRwUZab88pXf0Kgr?= =?us-ascii?Q?J/2DzuQ0WO3789wnfilvYiFuTmqxXRU1WENDnUN3/cddB5LYzzJoTtdY9hvv?= =?us-ascii?Q?fCb7Tg74G4qSoSCCqi3RH2jyVSXd7AwllFo+CYXwJ16FToJbQae43EFPW281?= =?us-ascii?Q?Qb/IH8Vc2ai0pQ2CeT1p0kimZ1gIDsCQBwH5pF409vPa5bMHqytJCr5Dqg/+?= =?us-ascii?Q?diTfs+ot+Yc6xFp4SH8k4g0CEfV12sVl+NenUBBqgdFq0eF9RGmk/cQNgHUu?= =?us-ascii?Q?y+otraIvCUnQDD2AUdajJjqAWdwZNmqM1R+ea+LCQtJhRRfb7otuIMYdtx9/?= =?us-ascii?Q?pvaf+ryAMq+EK3jd0g2773yB8IuH/EG8QBjd74aU+Swhc8nUvOah4X4ueUWL?= =?us-ascii?Q?pLnB8kbnudr4TDL1443z6HtDUAroUpfxO+51YfFaHB5aCfipP6Qo45oDrODl?= =?us-ascii?Q?nDU7AMnfGdwjPSDoENh3ikHdked9qkSdhopmisWtfbAhy96251qfSJ6axUEt?= =?us-ascii?Q?o9rD/ZyOhQiQG7GKMZBcpgFXq1YnQBka/JD7rM86OkVPh/8b6k6hocqPBvQx?= =?us-ascii?Q?T1FIdub0e/Eq/mUOwqExlPVkraByiDKIVgEipup3nkJrMLMDJykCoCSlHElj?= =?us-ascii?Q?+o2DlfFr1aJQ22y+RhFFgRYJ1BvzRp6LA4K/0MKAk23rSPlJBAhTk1NjX3fM?= =?us-ascii?Q?RWLjKhuqu1OZKkE2Bnvw4//vG7WRYqyLEjf4gq1jvT+GQZQpHMjPpd4q5bDT?= =?us-ascii?Q?Ect8SHXOHd/hqXtMLKUnBO9IdYor0H2gBjbFa4JYxW8HXOCVzpdcIRFQMCXf?= =?us-ascii?Q?Wlaj4Jn23oglgGbTyu7CY4rnJcaE/x5rNElE+u9oiG7bZTysA8i1xQakpnlS?= =?us-ascii?Q?KXQOLhYdquKvbXezt7zw41iTCnlo46OtO60g4JtQ8eXv+gAKDfX3Lq/SZZ25?= =?us-ascii?Q?vG1BOmA/oiZF7KYueTrBWaKjxIn3e1LxAUhQAXyM6F7wZ2VSvPpsdF+qPXVz?= =?us-ascii?Q?weea8eawOMvs3ySzhalSMiZJBXYIX0QNyuAbMq/yz3UCZA7vswZcI0Jt4aEO?= =?us-ascii?Q?y4RDP3TfF09YgwC/a0hRJMF9SAED8N2CQ3fSj/+GTJRd7RWDUp/2Z5SopCCZ?= =?us-ascii?Q?cPyUI2XvDD3GAYqgyyBLcAd6eRXdSxRJNEJwr+BqVrj71RlNulMZqKRQ6FHr?= =?us-ascii?Q?xDVRAfQdVLDNtCQu4K7Ev4mSDg5cXpMavLAur4GANIasvL15bDD5FXgksQ2/?= =?us-ascii?Q?OhYiQLMQr2EW19AfchC1aeu5r9Mnd071Sq2Rx46xWxgafPAJoyb9D3S6vS4D?= =?us-ascii?Q?UkYnZg=3D=3D?= Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-AuthSource: BYAPR11MB3590.namprd11.prod.outlook.com X-MS-Exchange-CrossTenant-Network-Message-Id: 48565962-4822-4947-ef02-08d9dab64b1e X-MS-Exchange-CrossTenant-originalarrivaltime: 18 Jan 2022 19:11:12.8076 (UTC) X-MS-Exchange-CrossTenant-fromentityheader: Hosted X-MS-Exchange-CrossTenant-id: 46c98d88-e344-4ed4-8496-4ed7712e255d X-MS-Exchange-CrossTenant-mailboxtype: HOSTED X-MS-Exchange-CrossTenant-userprincipalname: J3npd30VpNX66peswghSRKb0EKgJoO1/IWWXQtwdspkE6ibo+g9CVdySfkS5SnLCLFhwD5jSMZkx3M3Vz3mus6foF3sFYPxKRrJuIddhPxU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL1PR11MB5478 X-OriginatorOrg: intel.com Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-13.3 required=5.0 tests=BAYES_00, DKIMWL_WL_HIGH, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, SPF_HELO_PASS, SPF_NONE, TXREP, T_FILL_THIS_FORM_SHORT, WEIRD_PORT 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: Tue, 18 Jan 2022 19:11:22 -0000 Kindly pinging for this patch. Thanks, Christina -----Original Message----- From: Schimpe, Christina = Sent: Monday, December 20, 2021 2:15 PM To: gdb-patches@sourceware.org Cc: Schimpe, Christina Subject: [PATCH v3 1/1] gdb: Use a typedef's scoped type name to identify l= ocal typedefs GDB prints the wrong type for typedefs in case there is another typedef ava= ilable for the same raw type (gdb/16040). The reason is that the current h= ashmap based substitution mechanism always compares the target type of a ty= pedef and not its scoped name. The original output of GDB for a program like ~~~~ namespace ns { typedef double scoped_double; } typedef double global_double; class TypedefHolder { public: double a; ns::scoped_double b; global_double c; private: typedef double class_double; class_double d; double method1(ns::scoped_double) { return 24.0; } double method2(global_double) { return 24.0; } }; int main() { TypedefHolder th; return 0; } ~~~~ is ~~~~ (gdb) b 27 Breakpoint 1 at 0x1131: file TypedefHolder.cc, line 27. (gdb) r Starting program: /tmp/typedefholder Breakpoint 1, main () at TypedefHolder.cc:27 27 return 0; (gdb) ptype th type =3D class TypedefHolder { public: class_double a; class_double b; class_double c; private: class_double d; class_double method1(class_double); class_double method2(class_double); typedef double class_double; } ~~~~ Basically all attributes of a class which have the raw type "double" are su= bstituted by "class_double". With the patch the output is the following ~~~~ type =3D class TypedefHolder { public: double a; ns::scoped_double b; global_double c; private: class_double d; double method1(ns::scoped_double); double method2(global_double); typedef double class_double; } ~~~~ --- gdb/testsuite/gdb.cp/ptype-flags.cc | 23 ++++++++ gdb/testsuite/gdb.cp/p= type-flags.exp | 88 ++++++++++++++++++++++------ gdb/typeprint.c | 3 +- 3 files changed, 95 insertions(+), 19 deletions(-) diff --git a/gdb/testsuite/gdb.cp/ptype-flags.cc b/gdb/testsuite/gdb.cp/pty= pe-flags.cc index fc92d3950c..564d272e57 100644 --- a/gdb/testsuite/gdb.cp/ptype-flags.cc +++ b/gdb/testsuite/gdb.cp/ptype-flags.cc @@ -38,7 +38,30 @@ public: double method(void) { return 23.0; } }; = +namespace ns +{ + typedef double scoped_double; +} + +typedef double global_double; + +class TypedefHolder +{ +public: + double a; + ns::scoped_double b; + global_double c; + +private: + typedef double class_double; + class_double d; + + double method1(ns::scoped_double) { return 24.0; } + double method2(global_double) { return 24.0; } }; + Holder value; +TypedefHolder value2; = int main() { diff --git a/gdb/testsuite/gdb.cp/ptype-flags.exp b/gdb/testsuite/gdb.cp/pt= ype-flags.exp index c368415793..9734a70ee2 100644 --- a/gdb/testsuite/gdb.cp/ptype-flags.exp +++ b/gdb/testsuite/gdb.cp/ptype-flags.exp @@ -33,7 +33,9 @@ if ![runto_main] then { gdb_test_no_output "set language= c++" "" gdb_test_no_output "set width 0" "" = -proc do_check {name {flags ""} {show_typedefs 1} {show_methods 1} {raw 0}}= { +proc do_check_holder {name {flags ""} {show_typedefs 1} {show_methods 1} + {raw 0}} { + set contents { { base "public Base" } { field public "Simple t;" } @@ -62,24 +64,76 @@ proc do_check {name {flags ""} {show_typedefs 1} {show_= methods 1} {raw 0}} { "" {} $flags } = -do_check "basic test" -do_check "no methods" "/m" 1 0 -do_check "no typedefs" "/t" 0 1 -do_check "no methods or typedefs" "/mt" 0 0 +proc do_check_typedef_holder {name {flags ""} {show_typedefs 1} {show_meth= ods 1} + {raw 0}} { + + set contents { + { field public "double a;" } + { field public "ns::scoped_double b;" } + { field public "global_double c;" } + } + + if {$show_typedefs} { + lappend contents { typedef private "typedef double class_double;" } + } + + if {$show_methods} { + lappend contents { method private "double method1(ns::scoped_double);" } + lappend contents { method private "double method2(global_double);" } + } + + if {$raw} { + lappend contents { field private "TypedefHolder::class_double d;" } + } else { + lappend contents { field private "class_double d;" } + } + + cp_test_ptype_class value2 $name "class" "TypedefHolder" $contents \ + "" {} $flags +} = -do_check "raw" "/r" 1 1 1 -do_check "raw no methods" "/rm" 1 0 1 -do_check "raw no typedefs" "/rt" 0 1 1 -do_check "raw no methods or typedefs" "/rmt" 0 0 1 +do_check_holder "basic test" +do_check_holder "no methods" "/m" 1 0 +do_check_holder "no typedefs" "/t" 0 1 +do_check_holder "no methods or typedefs" "/mt" 0 0 = +do_check_typedef_holder "typdefs class: basic test" +do_check_typedef_holder "typdefs class: no methods" "/m" 1 0 = +do_check_typedef_holder "typdefs class: no typedefs" "/t" 0 1 0 = +do_check_typedef_holder "typdefs class:no methods or typedefs" "/mt" 0 = +0 + +do_check_holder "raw" "/r" 1 1 1 +do_check_holder "raw no methods" "/rm" 1 0 1 do_check_holder "raw no = +typedefs" "/rt" 0 1 1 do_check_holder "raw no methods or typedefs" = +"/rmt" 0 0 1 do_check_typedef_holder "typedef class: raw" "/r" 1 1 1 = +do_check_typedef_holder "typedef class: raw no methods" "/rm" 1 0 1 = +do_check_typedef_holder "typedef class: raw no typedefs" "/rt" 0 1 1 = +do_check_typedef_holder "typedef class: raw no methods or typedefs" = +"/rmt" 0 0 1 = gdb_test_no_output "set print type methods off" -do_check "basic test, default methods off" "" 1 0 -do_check "methods, defa= ult methods off" "/M" 1 1 -do_check "no typedefs, default methods off" "/t"= 0 0 -do_check "methods, no typedefs, default methods off" "/Mt" 0 1 +do_check_holder "basic test, default methods off" "" 1 0 = +do_check_holder "methods, default methods off" "/M" 1 1 do_check_holder = +"no typedefs, default methods off" "/t" 0 0 do_check_holder "methods, = +no typedefs, default methods off" "/Mt" 0 1 do_check_typedef_holder \ + "typedef class: basic test, default methods off" "" 1 0 = +do_check_typedef_holder \ + "typedef class: methods, default methods off" "/M" 1 1 = +do_check_typedef_holder \ + "typedef class: no typedefs, default methods off" "/t" 0 0 = +do_check_typedef_holder \ + "typedef class: methods, no typedefs, default methods off" "/Mt" 0 = +1 = gdb_test_no_output "set print type typedefs off" -do_check "basic test, default methods+typedefs off" "" 0 0 -do_check "meth= ods, default methods+typedefs off" "/M" 0 1 -do_check "typedefs, default me= thods+typedefs off" "/T" 1 0 -do_check "methods typedefs, default methods+t= ypedefs off" "/MT" 1 1 +do_check_holder "basic test, default methods+typedefs off" "" 0 0 = +do_check_holder "methods, default methods+typedefs off" "/M" 0 1 = +do_check_holder "typedefs, default methods+typedefs off" "/T" 1 0 = +do_check_holder "methods typedefs, default methods+typedefs off" "/MT" = +1 1 do_check_typedef_holder \ + "typedef class: basic test, default methods+typedefs off" "" 0 0 = +do_check_typedef_holder \ + "typedef class: methods, default methods+typedefs off" "/M" 0 1 = +do_check_typedef_holder \ + "typedef class: typedefs, default methods+typedefs off" "/T" 1 0 = +do_check_typedef_holder \ + "typedef class: methods typedefs, default methods+typedefs off" = +"/MT" 1 1 diff --git a/gdb/typeprint.c b/gdb/typeprint.c index 1312111b60..98f6af4104= 100644 --- a/gdb/typeprint.c +++ b/gdb/typeprint.c @@ -201,9 +201,8 @@ static hashval_t hash_typedef_field (const void *p) { const struct decl_field *tf =3D (const struct decl_field *) p; - struct type *t =3D check_typedef (tf->type); = - return htab_hash_string (TYPE_SAFE_NAME (t)); + return htab_hash_string (TYPE_SAFE_NAME (tf->type)); } = /* An equality function for a typedef field. */ -- 2.25.1 Intel Deutschland GmbH Registered Address: Am Campeon 10, 85579 Neubiberg, Germany Tel: +49 89 99 8853-0, www.intel.de Managing Directors: Christin Eisenschmid, Sharon Heck, Tiffany Doon Silva = Chairperson of the Supervisory Board: Nicole Lau Registered Office: Munich Commercial Register: Amtsgericht Muenchen HRB 186928