From patchwork Mon Dec 4 23:47:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 81305 Return-Path: X-Original-To: patchwork@sourceware.org Delivered-To: patchwork@sourceware.org Received: from server2.sourceware.org (localhost [IPv6:::1]) by sourceware.org (Postfix) with ESMTP id 99B8438708B9 for ; Mon, 4 Dec 2023 23:59:48 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from eggs.gnu.org (eggs.gnu.org [IPv6:2001:470:142:3::10]) by sourceware.org (Postfix) with ESMTPS id 017D73858C41 for ; Mon, 4 Dec 2023 23:59:17 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 017D73858C41 Authentication-Results: sourceware.org; dmarc=fail (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=fail smtp.mailfrom=oracle.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 017D73858C41 Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=2001:470:142:3::10 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1701734367; cv=pass; b=vlhQVmyvbnvfU/ebDndJ+zOkua59ObIs1iVzweWvadtwmq50t6a5SyiqeEq++I3ofvCtEScgW7eTtPh+yC71jRvmp+3ns0ATXPC2DDDCXFFpLxJodKpaKPpC7EfmdbuwCATEnvaqr0/dBFMKFCzLUQYRmCmd6kWcF8NOxeqn0vo= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1701734367; c=relaxed/simple; bh=kLRfbKsRlUYV7kdgCqH2gvtB55d83eG8FTv5aHQ/cyE=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-ID: MIME-Version; b=hxNBHukEW0GBBEUIk5xkjNwRfmbygGBHKqJejPlRetUQG/Blrqh8bGg6AMpATeiNEIayNYQ8NOT5o1IyyLPG7k13y6hjSremVfcRePHVTMb3/KHQcTB+qKaEC37JAKIVei6JaG7kln3ZJy4FCLMvwoNpEMsv/sMdZp2+nghqcoc= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from mx0b-00069f02.pphosted.com ([205.220.177.32]) by eggs.gnu.org with esmtps (TLS1.2:ECDHE_RSA_AES_256_GCM_SHA384:256) (Exim 4.90_1) (envelope-from ) id 1rAIqI-000539-Ix for gcc-patches@gcc.gnu.org; Mon, 04 Dec 2023 18:59:16 -0500 Received: from pps.filterd (m0246631.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3B4NqWPc024833 for ; Mon, 4 Dec 2023 23:58:11 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : cc : subject : date : message-id : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=OWmzhGFcU6IT8uwKkLaRjVcOifZ8523AG0euZWj04rI=; b=CoK9rE0MTzx3OJC9Y6YiBFxqcbw9GcvQlRQkrmUdiwnWvEOyuaR3Ru4MLvX0Et73Zq7R 1ABM4htpWKjd8kzG4dQqMhsm3DV0ne/0sUIRb7+5Ajd58RlkAnOEuJgXDv10sFy2b+6Z yEfsa/sPmlqKP1IeMQ8UAacls6KqM3gIU35OSY5j/7E+tayEonNzYntFh4VYVpUpIZj0 VkJac91qj9S+lH6HL2H0/Q9C5aDKaL2Qs9RLIp4Jct4wAHkt7lQt7LyZDv4VJbO8ufyT D1oQeiAcefRtFiGLzAJt5b2vFLCDQI2K8GK4TUDfQKPDrelgrkBeBmwry0tvitohR43U 8Q== Received: from phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta01.appoci.oracle.com [138.1.114.2]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3usrtsg07j-11 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 04 Dec 2023 23:58:11 +0000 Received: from pps.filterd (phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 3B4MIYFd005021 for ; Mon, 4 Dec 2023 23:47:23 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by phxpaimrmta01.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3uqu16c66a-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Mon, 04 Dec 2023 23:47:23 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=TlDLpyTQYPWIYcu/IjAbnehfFiEc3rsp0VsJRN0XGUBpG3SCkZ3qDg0akQqARSprTbM3Bo/XY9DRcAvtYymKOfC5Sj7br9vt1PRwUDV6pYP+Ipk2hgDbt8gS1E2luyivYfl3d9BC0RHpLv5BwsR7auaHZv43oUYBJomaI/UvohsEX/Xjaa+YqPrzeXSJL3BIRHhwHuWurfObrv9Ayud4hLeBaWti1804cNAoFEQWqMuFipkYaynJySZn+W7J/bTLTlPS2jJexEbbVmp1exbdrT9m2amWvp3CUGzGL8y7DcQINKeu6LYSaT7c4MCI7u/rKx5jKpA46+kk3XWlXwBB2Q== 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=OWmzhGFcU6IT8uwKkLaRjVcOifZ8523AG0euZWj04rI=; b=M0YDDmSzehbGq06ZObMaSG8Le5VPijOL7uNB5wk/0Um3+CQWDGuxYGMG/Y4yXEV62Aoc81TzEk2QrOxw9iTsBg21Lt48fJxY1IzJI5l2A1Yt0jcKgWPg740crIPNwP6AatKKNk9LwzYs7ujU2zgAqkJb+4QX39uBoolU6svVqHMWYwYG3FQXrBSpHsFvc4i3nCMB95GsZQNQvPV/azoGQ/DRRRUW5yFHvHEwC6UKJGo7dD9cCh5DiI9ZG8kpc52cnIK1sG+bfkt4DSLD2cRM61h7QZpDV4hP3FIA+bcrwJzJPa/OYd2SAek327F73PL/HtNa5SlCoetuhBX4PUpCCg== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=oracle.com; dmarc=pass action=none header.from=oracle.com; dkim=pass header.d=oracle.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.onmicrosoft.com; s=selector2-oracle-onmicrosoft-com; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=OWmzhGFcU6IT8uwKkLaRjVcOifZ8523AG0euZWj04rI=; b=SDot0zKIlPoszldIdMmdCK9Kix9Bondeeoim0h96gLwji3U3KIiD9d0XFa9i1BgFqVItm2nhW+d99+KE5+/kUsCa2mB0/n+VLFAmsqAWg+Bn1qJBT82CiDAgTTzbFzFeQ/dam+orAUzTEHA2Qd9WKX/ahKnv3BaJhs1f4JGt9Ho= Received: from MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) by BL3PR10MB6114.namprd10.prod.outlook.com (2603:10b6:208:3b9::14) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7025.29; Mon, 4 Dec 2023 23:47:21 +0000 Received: from MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::d8:db85:8025:ed64]) by MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::d8:db85:8025:ed64%7]) with mapi id 15.20.7046.033; Mon, 4 Dec 2023 23:47:21 +0000 From: David Faust To: gcc-patches@gcc.gnu.org Cc: indu.bhagat@oracle.com, jose.marchesi@oracle.com Subject: [PATCH] btf: avoid wrong DATASEC entries for extern vars [PR112849] Date: Mon, 4 Dec 2023 15:47:15 -0800 Message-ID: <20231204234715.9773-1-david.faust@oracle.com> X-Mailer: git-send-email 2.41.0 X-ClientProxiedBy: BY3PR03CA0002.namprd03.prod.outlook.com (2603:10b6:a03:39a::7) To MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MN2PR10MB3213:EE_|BL3PR10MB6114:EE_ X-MS-Office365-Filtering-Correlation-Id: 2fd58343-d6ba-4eb4-a5d6-08dbf5235bc5 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: 7h2jb3oKFRvovYPkVXw4+ey3t0LJaAXyRkNUmT4gXE7urGxlfJRsis892hK1SOuT4B4ZeyUjXRdFRx4L7uwWIeiNNhzyGyjeSmwMDzlG7RuVjDO91/4djgdrSigZlKvbsNquN3mi2BoOf8d6pBeTq684Px+5+/jBAAqWn42oPFQdqnJa0+vdqac33lLewrAWoD6BB9HXuCdU7kghK3XH9bfKCrd28p9t22yMo4+NxEeyxUclCEoyH9yypNC0jqx9MnIbA+ftkr7pEZ/I51dGWbW0nXRQO885SztiiWIXP2+L/G/2HO/XgHlkWHQbI5Mhr/KFRTQYetgAHBjYT9K5btCrT3u31FC90HHmDXa/i+U4ayZxpARscNT774ecp6hwR25v0L+537WcLubbRJjuh3MU8kwCSMvujSJ+2/2cbgnUg3pECRO04la4KS2aeQCuoSqtoHCWYOjZVKs7rL4Mw4UqBPPtLn5ALtnkE+WJwolif+wdoTzhoN2uerQygyU6x//fyQ/ejq26jagz15QDeuhzB2DMMqq8HZTarEICyhRs3hJ/Q75irG9+KG6s3kV8PcTt4TCh9Gs8QtNmNwNBq3AxZ8TMgSiskRDJtHN085tnHemZqiXTPUCjb0/LBVl+ X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:MN2PR10MB3213.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(136003)(39860400002)(366004)(396003)(346002)(376002)(230922051799003)(230273577357003)(230173577357003)(1800799012)(186009)(64100799003)(451199024)(83380400001)(38100700002)(36756003)(86362001)(6512007)(8936002)(316002)(6506007)(66556008)(44832011)(66476007)(5660300002)(478600001)(4326008)(6916009)(66946007)(6486002)(41300700001)(84970400001)(2906002)(8676002)(107886003)(1076003)(2616005)(6666004)(26005); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 69G5mEq4HPtXxiiSzY4tuFJXCOCFnHtRtCzjCHPF3yvFQtpxa3HhKNTFH7kLuwRHBpxGEgoM/+01qKptC2ogqXvWkrIVSqBoLPzhjG3rgGYYPb7Dn59YVNxS/nNQOVJHcERISm9ShPzV1W+8b7eJzu7RJo9iEsoMFxPbJE0afiwtJ/afvSOEZOo3V/zszt4agL+4PBZ1fUwaIZUtUqjCrVRI0uIp8Ifpmbt9OebqlBBoaAk0CkMipbcjV6zjRNjQtXhC+/yeve6wm6kd3tkISwhN4pS+FVB3Iw3jmVL+y9VrLQwLBwxDo3+7A6ZMmuLKFwzGlkHxfy/jgarAEObY5txB1kjG3c3QHi4mvV30jcTneXt5q8M1BPorBHuaZTvZni6XkLqaL1sVl3BF8RY+v2p8AjcPagfN9tm+ME1qxDMNleCEs8Nro3S9Dh6qU6pCJt2WQguSFwO0hcpTvdXQSmpU8pgTxWPCfnBFfvDVkW6qO5NFiPk+0LQj4mHOtf6G0L53VM5OLdnlQ6jY7pMN1DB5YY88VAlVEW01HEaiuYHShBK3Af3kaKY/HffBeSvuOo+tKL74SNdsgwZmX9J7NtuyotXNTgX6LF/AdIUOloJgCa3bTZG6OV9dxDYp2aVYd+4Zia/RAD1k2P1h4BAZCaIJTJ0h+1fGuZ/fC0tENl8AnB4P7JN6VIH5FJT6/IsyV3VA59KgxEAufOQyC+TMjKtFQH3ML7C8Ofm1GGXUSkYq1o4+ALIwbkBi2z/bbRc1z8X4J28tz83EOnpeS0mNAZjsFJrDpF+6mm4C6OOqqaA0c1ADsweglFE/4o+/J6NyG9G0T6r97JbR78ZGOxPSut1HnAdSJ5NFOVvlU59sxkqqWj0ICdR8QSMQK5H+3rEL7HkZncNx4tMP5QcPe7L9MHwtqEiDZCUGmNnyBX6wa0hk10sgv7WpjAVU3W1CP8Z0Tu/iMUCi2TDUh3plzF4aPHbLf23JoL8WTMyhHnX6Ooi8kHtjqQpo/5EJcvFXvFpxePRNwqojSICAUD4Qug7f8qWnJUNvJhDak8CsUCoa4vXt1umCCOgKpC+EtQeM/KVI77pRvqu2ojzpUvuc7vzX6MjPoav/fwH/9G/kiRUk1NHJrFqDhOs5X713izlqUY4uidqT1vRZLtKI4AdGh+Dwa/vFR8YHt9bWzLri9By1UjVeHSzh9qLTW2AxODz9aelg7LIyHJujfEk8S6GzYuRDm5jvjiMFb5urfUEtcFFvUx0yVXN2vOaEbde0kta6bPUyFarrSVGLMJdSbcBwN9rOTMpj/QaFu6/PG7LEJ5/+xg1dZ9d4D2P08sauYJPRdRICxVCR5DZXzZLYiYCMz9DT6y+rB8+/V8q5AbCO0lG2fhBLYvKswZJShJ9Cx5lvSuM8N4KpkdMAcoazNQirLbPc++fhLCF1+9P1pXcf6Ym+cXqk86W3A4v4cFQO2PaXjgl2e/X4ngatXKgX7sHCsNwhM+ASPOSZJHdoLOxyXnR2FRmu2HSXXqcYyLHjvo22IqcNhpdGn9LMHaR9JoYCRzstIopMU/ldMQOirX2sc06LkKd2OLroGPbP3YFptdI+RrEw X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: 4LG5c7DTJUJmKZ6BDNl9Bqdf6ULhikM1df5+6UWnCIeg8yYcorkcDPUUjB3skm3RBLPq0/hcAXXLqU2xE90e7ykZHlRo0RqYd7tM+YHWq6zDa6D2wvvtfgAYTi9tyb6pBDPzIttxAEDQgoazAtA5dG7+mKL8X/rr5GIEAhbCFGOgqeTkywhCRjlRm28HwwTIlkOUS3oZ/9TNqFsGxAzJcTzsS38bvaiafLsxRRSTlCwO0uOItWtg9tQzut+Nk4XU0dBoBofqsC3QXX3J1nkypjzYfnK/4taUkpbXNr/Rx0Xbv5XsUQEFfz/gMgfZjVuNNx1wnLpouvy58DCet1x0nIg2xxV0Lcy4plNYRTDefEGgdod9oF9W8VKmTdbEELXVJH6STQH7U3AQBmBvgV8TQL9JNLLlGG89YIEC9cBb0CEsneONAUWI+daL8W9PLnNPUn6mWKYSKsPX5wbxbMekI8iRVVj29wNGPdlgmabgEKUnc8WltpFfCnXJd54G7KkY03UOLdEln6kHj7i5zyU6Xcy0oo714TT2T2rRCrLor869xcu9BDdwBKFlpXV0cbQlI8xofeHtazXGbbhTf+c3mTWlRqJW8HgbNG9zwRSdRdxUaeASROa/yZRU/bQykOVfrKt3ktP8ty/eaBneatV4OsnuCiLXWaOp0ehQkXBEF+MqwI3nIxZwgaX7h61xTo16bR4yeXv2SmsDMlpjcjEbah+zDgWN0okukYTVZfKYcs1JvPBkE91H5WYpShpoK8B5 X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 2fd58343-d6ba-4eb4-a5d6-08dbf5235bc5 X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB3213.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 04 Dec 2023 23:47:21.6954 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 4e2c6054-71cb-48f1-bd6c-3a9705aca71b X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: I8TGTK2ItxiWKzGwx9MZkWKkJvx6X2ZlNv9SVy+G8FKiJsMIP3+PiMz98P7zV/siopRxQdu5ZUQXyKGxOAU6Fg== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BL3PR10MB6114 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.272,Aquarius:18.0.997,Hydra:6.0.619,FMLib:17.11.176.26 definitions=2023-12-04_22,2023-12-04_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 bulkscore=0 suspectscore=0 mlxlogscore=999 adultscore=0 phishscore=0 malwarescore=0 spamscore=0 mlxscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311060000 definitions=main-2312040187 X-Proofpoint-GUID: RjpYHQHKBS1-WWm7kYTkvwp8aLNxL2Rf X-Proofpoint-ORIG-GUID: RjpYHQHKBS1-WWm7kYTkvwp8aLNxL2Rf Received-SPF: pass client-ip=205.220.177.32; envelope-from=david.faust@oracle.com; helo=mx0b-00069f02.pphosted.com X-Spam_score_int: -27 X-Spam_score: -2.8 X-Spam_bar: -- X-Spam_report: (-2.8 / 5.0 requ) BAYES_00=-1.9, DKIM_SIGNED=0.1, DKIM_VALID=-0.1, DKIM_VALID_AU=-0.1, DKIM_VALID_EF=-0.1, RCVD_IN_DNSWL_LOW=-0.7, RCVD_IN_MSPIKE_H5=0.001, RCVD_IN_MSPIKE_WL=0.001, SPF_HELO_NONE=0.001, SPF_PASS=-0.001, T_SCC_BODY_TEXT_LINE=-0.01 autolearn=ham autolearn_force=no X-Spam_action: no action 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, SPF_HELO_PASS, SPF_NONE, TXREP, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org X-BeenThere: gcc-patches@gcc.gnu.org X-Mailman-Version: 2.1.30 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org The process of creating BTF_KIND_DATASEC records involves iterating through variable declarations, determining which section they will be placed in, and creating an entry in the appropriate DATASEC record accordingly. For variables without e.g. an explicit __attribute__((section)), we use categorize_decl_for_section () to identify the appropriate named section and corresponding BTF_KIND_DATASEC record. This was incorrectly being done for 'extern' variable declarations as well as non-extern ones, which meant that extern variable declarations could result in BTF_KIND_DATASEC entries claiming the variable is allocated in some section such as '.bss' without any knowledge whether that is actually true. That resulted in errors building the Linux kernel BPF selftests. This patch corrects btf_collect_datasec () to avoid assuming a section for extern variables, and only emit BTF_KIND_DATASEC entries for them if they have a known section. Bootstrapped + tested on x86_64-linux-gnu. Tested on x86_64-linux-gnu host for bpf-unknown-none. gcc/ PR debug/112849 * btfout.cc (btf_collect_datasec): Avoid incorrectly creating an entry in a BTF_KIND_DATASEC record for extern variable decls without a known section. gcc/testsuite/ PR debug/112849 * gcc.dg/debug/btf/btf-datasec-3.c: New test. --- gcc/btfout.cc | 10 ++++++- .../gcc.dg/debug/btf/btf-datasec-3.c | 27 +++++++++++++++++++ 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 gcc/testsuite/gcc.dg/debug/btf/btf-datasec-3.c diff --git a/gcc/btfout.cc b/gcc/btfout.cc index a5e0d640e19..db4f1084f85 100644 --- a/gcc/btfout.cc +++ b/gcc/btfout.cc @@ -486,7 +486,15 @@ btf_collect_datasec (ctf_container_ref ctfc) /* Mark extern variables. */ if (DECL_EXTERNAL (node->decl)) - dvd->dvd_visibility = BTF_VAR_GLOBAL_EXTERN; + { + dvd->dvd_visibility = BTF_VAR_GLOBAL_EXTERN; + + /* PR112849: avoid assuming a section for extern decls without + an explicit section, which would result in incorrectly + emitting a BTF_KIND_DATASEC entry for them. */ + if (node->get_section () == NULL) + continue; + } const char *section_name = get_section_name (node); if (section_name == NULL) diff --git a/gcc/testsuite/gcc.dg/debug/btf/btf-datasec-3.c b/gcc/testsuite/gcc.dg/debug/btf/btf-datasec-3.c new file mode 100644 index 00000000000..3c1c7a28c2a --- /dev/null +++ b/gcc/testsuite/gcc.dg/debug/btf/btf-datasec-3.c @@ -0,0 +1,27 @@ +/* PR debug/112849 + Test that we do not incorrectly create BTF_KIND_DATASEC entries for + extern decls with no known section. */ + +/* { dg-do compile } */ +/* { dg-options "-O0 -gbtf -dA" } */ + +extern int VERSION __attribute__((section (".version"))); + +extern int test_bss1; +extern int test_data1; + +int test_bss2; +int test_data2 = 2; + +int +foo (void) +{ + test_bss2 = VERSION; + return test_bss1 + test_data1 + test_data2; +} + +/* There should only be a DATASEC entries for VERSION out of the extern decls. */ +/* { dg-final { scan-assembler-times "bts_type" 3 } } */ +/* { dg-final { scan-assembler-times "bts_type: \\(BTF_KIND_VAR 'test_data2'\\)" 1 } } */ +/* { dg-final { scan-assembler-times "bts_type: \\(BTF_KIND_VAR 'test_bss2'\\)" 1 } } */ +/* { dg-final { scan-assembler-times "bts_type: \\(BTF_KIND_VAR 'VERSION'\\)" 1 } } */