From patchwork Fri Dec 1 09:47:26 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: "Jose E. Marchesi" X-Patchwork-Id: 81096 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 4F8AF3861883 for ; Fri, 1 Dec 2023 09:48:13 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id C0721385C6EB for ; Fri, 1 Dec 2023 09:47:34 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org C0721385C6EB Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org C0721385C6EB Authentication-Results: server2.sourceware.org; arc=pass smtp.remote-ip=205.220.177.32 ARC-Seal: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1701424066; cv=pass; b=jnmbyPdYQHgOidGfgD7LVmVz6U6zb3FNH/dr6Thxb8D5l1d92lE8mTP8iYxLK7DYJ+qEkPLQ248b/CGy79RQZISa1WclDvJngfJBQuwWMNIkISll4oYamjNImiwe+9jEo/PDumS1PaevHOX6/yuta9ucY0nlh509lbCObhnfGmE= ARC-Message-Signature: i=2; a=rsa-sha256; d=sourceware.org; s=key; t=1701424066; c=relaxed/simple; bh=G066brmkJLfFDPU3EAtcWExwMuDK4R4i+uGEAo1dRqk=; h=DKIM-Signature:DKIM-Signature:From:To:Subject:Date:Message-Id: MIME-Version; b=H0XU6JHIw4M7h/M51adiz5QlrAvKxHpnCC5b0uSh/Yzph5MoiSXZBJ/3DRP4e9ZdB7ghuYDFDd14HRZe2lsiOPxBnO0v1JLU/ZxRaEiXRt7ka5ymrpZ0Uz7GShW0dB7vcSElbhkIEbNpjyoMz8LmeBoD8Ugr0XCJTqL8TbwaeJg= ARC-Authentication-Results: i=2; server2.sourceware.org Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.19/8.17.1.19) with ESMTP id 3B19lXcv031016 for ; Fri, 1 Dec 2023 09:47:34 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=from : to : subject : date : message-id : content-transfer-encoding : content-type : mime-version; s=corp-2023-11-20; bh=01M3A4C9FWvUL7rvsR/3QjnmIGbYSeyz/HHWu1tmJjc=; b=SkoUXSlZBXVPKiDZ4ELj4D7S/RV8Hr3ImtBIoW6Kn+n1VvbovbnRJb3VU9F2/U//hAa1 q/9Dd68f4ssTUE3GtpbBD9QxLfmRAZBg/GBVAxSUZaiYFNS3S2qhgpzL2WpS3VRzVBuY +J88ynyfL5e4dQvJ2jky0MYlX3S08WI5zFy/+zu/vj/WwvpkJyFEGhkYPgce6T9/0ewa LPk27T1jxrNIv/gXcrVtfRtu+KXHYVE76qTDcr7gOhPlx108H3a3ae2ljd4N5O5nfGwB L+ERsL84Y4q2DSVa5ExRzkhfmZSsLmSkyokdBjvHBtXQJ3tZrzbr4jDNrvLxitAse4rV bQ== Received: from phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta03.appoci.oracle.com [138.1.37.129]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3uqd5p800h-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 01 Dec 2023 09:47:34 +0000 Received: from pps.filterd (phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.19/8.17.1.19) with ESMTP id 3B19CBCP012649 for ; Fri, 1 Dec 2023 09:47:33 GMT Received: from nam12-bn8-obe.outbound.protection.outlook.com (mail-bn8nam12lp2168.outbound.protection.outlook.com [104.47.55.168]) by phxpaimrmta03.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3uk7cc4r70-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Fri, 01 Dec 2023 09:47:33 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=dOFfmrHXgoZTk/EnQbbIdoN9Pe+AjQceKtKgO2W4fYbHQ6hzPqXQjDdm+F8/HxIqKjZ6a+PYijGtTiXGluIimwFN1V9NnT32gocEdcYgWMnNEl87eB2z3k4n29HuLJY2zSIHbDvvzwknhbtUKZnV1S1uaKvEvFWF3XHrRVJikz+phygMBwfNiN/Ofw6kFJneI8YhY918N2LwqCQCgH6C1WZD+J+iJXUe28mbS5oVTV/AntbbXsp8T9D8wJXWPXlsZ3c9/53hTRAr2uHJfmzV/QFc2327ti7sZZwhscX9tDLrKxtbkzd/kRbeAdfD+NWhLZQivQ/gzHf9tCwH/h6Blg== 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=01M3A4C9FWvUL7rvsR/3QjnmIGbYSeyz/HHWu1tmJjc=; b=SCjxHa44ifxpsSrFrcblN2CG14w+qk6RAo72enRJCC8oiUwzF71ixY7Mg89ub2pGnlGbA3J1739TR+BKqTLchqM6V9kyzweRPcWfxzMsmJOVvXFVdOJHZ1k4foI4KMidWGHB08Q+Nh4OGbkXiQ1mWgsc21QR6zz0MKogc7sxhIAWRJ4dIbKOy+X+RVBh+NtxvN0OTU52GRG2NmsOZ9dOY5zySrz8gBoWzSfBc1O2N9uOlH7AykgyQ2TKZZYcfpUX67162oaPibSlUaJFqm+0FRG8Ja+4OpIeR2OmkIOnSl8fAniTay4AQ6InTEI6x82JK62aL9+wG5XbRHjQzUcbLw== 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=01M3A4C9FWvUL7rvsR/3QjnmIGbYSeyz/HHWu1tmJjc=; b=shw8tDKUHnnjWHwh5mEHoiYYp74gkIntyhWiH6Lh+6+hwUPmOK/k+f5Zns8Z7kBwyrKxdisy8XMa+Q8Op0p56muIaAQbQJ17IxoMkPbFVn2M47bKEM3xtbN8Ua3Mx68SMyZxrrwZo8kqmY8A+ku6PXJiH6GuIUG2bh9whoudhXo= Received: from BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) by PH8PR10MB6622.namprd10.prod.outlook.com (2603:10b6:510:222::5) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.7046.23; Fri, 1 Dec 2023 09:47:30 +0000 Received: from BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::ba16:f585:1052:a61c]) by BYAPR10MB2888.namprd10.prod.outlook.com ([fe80::ba16:f585:1052:a61c%5]) with mapi id 15.20.7046.027; Fri, 1 Dec 2023 09:47:30 +0000 From: "Jose E. Marchesi" To: gcc-patches@gcc.gnu.org Subject: [COMMITTED] bpf: quote section names whenever necessary in assembly output Date: Fri, 1 Dec 2023 10:47:26 +0100 Message-Id: <20231201094726.14266-1-jose.marchesi@oracle.com> X-Mailer: git-send-email 2.30.2 X-ClientProxiedBy: LO2P265CA0501.GBRP265.PROD.OUTLOOK.COM (2603:10a6:600:13b::8) To BYAPR10MB2888.namprd10.prod.outlook.com (2603:10b6:a03:88::32) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: BYAPR10MB2888:EE_|PH8PR10MB6622:EE_ X-MS-Office365-Filtering-Correlation-Id: 4b04faac-a2d2-4fdb-2181-08dbf25288fd X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: q8xDQWnJw5NaF+y5vcuH2xrars5/EDkX06H5HdGQSniVLZ35nyX/s0SUgtALx6QbLWuiMyLh3s5LqPhY7rxhlIDf/djQ9yd45KlSzWKkWzaWxIGYoBP5hMpnpFEX8n2X+RCxNjUEiFVX6mkZXz5lk3a4kwhjaEg9xnPHvQVtTHmqehPNNprhSaXGmRyBVtTvuxMxV8hhPr3eSxynMoEWjejRlJkqdyZqw4+7hVfrbLjPEbboh7lDte72D9dkHVbYCjZlcTJBZ/m/XuDWnq8ucPB5qccbz78/AMatKUD+X30GsPHWZouRh9HFXZeO0fFoNCfg2R5RmTuCErcppliRnQFM8Gi3k5qaX5yU8EvP0sBZA0eOWlUmV51MzcB/v09q8cHob4p2rXx89HSjgfB4OxXmFMta26VlsUxr75NtRPjqbajDjfypB9GDUM46h8vohZgsczuExTCT2sGTZRudF2ZBnZ0GUKswdAG7psP8+3MgBcCEgPFVOrZ568FfzPs1AvEW+LZb1bPPZBDpG3dPxy618KjvPuF+4i2NIF8AfAI= X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:BYAPR10MB2888.namprd10.prod.outlook.com; PTR:; CAT:NONE; SFS:(13230031)(39860400002)(346002)(366004)(376002)(396003)(136003)(230922051799003)(451199024)(64100799003)(186009)(1800799012)(38100700002)(86362001)(26005)(316002)(66476007)(66946007)(1076003)(66556008)(6916009)(2616005)(2906002)(84970400001)(6666004)(6506007)(6512007)(8936002)(6486002)(478600001)(8676002)(41300700001)(36756003)(5660300002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 3lib1ckDnXxorq1OLiOS4k/DO1n2AbnM47JxBuR103oEuN2LqFIwXjk2E+XOkRicL7aCvXAK1qWzclOqPBhWmeVTuBchNgxB6mEGSRhQ0+YEsrMMaMZAtnfq462s7sedIEI/Y9Ly5noWreZh/F7tC+Tn662gT0gs+WhZtZwTsBy24oHaopvMiT/Nv0WoVGi7xo53fp39SQ9sA0BHKsEN9vfE4l7yPAzSWjF85sA15Jmb36LeDCZz3XkaITSu/UIrgp9dNAaNLYszWjsl4NmgoEJMfs5bhV8RCmggYe+sI7VgOkX5K/g0E/vf1n/+y0LvqbU7KrEWoQARkAeIchp8Z1u3bhrIySOJBSPHFmHMq4kkiQpFh+5jluV91hPS4hd0P4fHid7pjCaSsOR8ZOv50WduqJ+7z3j0GXhXPLwFhzzoMWXi3zKBAbPhFBkHaAI82TyXKYbsCuKEtlbIcKcXBswFFwFq4qDA3Jv6MI5/q2wqhN2w0fyCjTXfHjbMjDea4MOLfoXLZcyJAyptGW2wWYayoYxQK/ccbg5OR8iU+wgldua6kE569iSNOyqgjYMLKHcTYO6Rm5vNESYoJi8W6vAiqr0WycgHYnIQSdvmxwboYCTq48nQdNBcbZ3QhKYn883o1wNEdOdZUhCNrRf+CequAW6pkWYV361pQUVSOLwpYcf8DLapmyrdI7LVibtsKCmFHwT1YgTbcwvxWaQawweCFmx5uknNzBz/It2jUeFXJVbsGD1LJfIxG40jl5Ex8bdWyuhlKlgkFXPh8sj9tC0cMZlTxCp+mOm0lLG0cc1h9H16WtJwY3iTW09TVByFhTnkttWJVAbrVoEhovuxyylnzbQ+zkkKlILUqYQblokr0/t+Q5zU+OZxob5JCLQ4fniJlNqtdXPlwjPO0QGa3rdPmu/naoDB2nvyVi27hfFUyhVcQfFmfg9qL0UfdtT1ptwECX4on+/65vm1Tmyarj/nE0BPsHIsNOckfmzVeewUULx51qejddaQ5zKguZ8MSMsT1GVyVtZeizj7Z+N5QAS3qLjnvklmsFQZ2qWlo9Ui+eWnRj0MWiNkbwidsx8cqgjf+vSBBSjP/XUgTOgFITzQhL55eVXC4UIsCGq2lQ9/yQnO9AUjRvqJtM4LXMs1PILFz2lmwU55L+qTmpe55WiK+kx8w6Fjz1LUUkGw5pI0pM65Wnjb8uLt863dJzkY8THRaYdduqKxxC6cAFEttgsss/fEbasPECfGK6lEDakYyqSoThYyTG7XxPjgL2/pbqhLQUTXgV8zw3mHywpI0POlAXh6nzCfOEaitUnoBV9iwkYhemuwqT4f8suHfmOMmijQsTBS7wAI48q91SjvnTm3BQjN/ufZclBOH0M3p798SIYV2vZN9lKh3dbrv8NVxJmNIx96t+r0wNtTwheAv5fxqqeYzyrqeT9L2n0KXknLCb1fYo3g1IQB1gExgFVrc63K5HW5A1Tf8E8A4NB9RquXqaqZIlYSZ5YeeWQiz5w+McP0RCc9nXSZ++o5MZdIBNxgupD7PHF/aAuO7HnCvFM/GzIRv7BNgLl63LTWGKEAZQzbBbe+SvIamjuumpKwZgRX9XdB2UV8iDPnnKYSSA== X-MS-Exchange-AntiSpam-ExternalHop-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-ExternalHop-MessageData-0: YpsJkj423JYJKAFasssscB+M1QL74T48qo8dXisJHiVSYa2PEfTb9ikr6AJmqeZmLdRj7lBc/fL96ePA2A/vYZG72eaGR0RQoOhjJCAY3QPrOVI9ODb3ScuddSMaiukQkMiRZoaL08Ih1kRKSso9uNYCprgf5zQMsYJfmkxb6Goktb9cOM/WBcekHd21Cfz70EC2a2ubWtsYsSrxAC0Ojm4gy45ST9wLmqV2iJlLKHIXeTm5JXlysym7UVGKmANkAZgOl6JydlPsDVyhfAB3y/s4HZRq5ccxJbZVDxLP7sigGYzPvHMoLFVM0Hcsvou/YYdRyocKYZ885jRYtjyA4JdeFG9ugwTlYdLOF2ruaMF/OVmEtp0iVZ4t31BqWCXKu2GoTpYNXUDpW9WZPvOLDClUubw5eV8cXC1MBpb20cNDC2nG5tqMC78MS3iwf34TPFZSybkTicEe0UOM3uNTlHiofjrGTKBjcGI238j9VjV0X0mDF0ObL/VSn4Eql1NP5+jo15syrwZb12dFSVtk41TyQiJ2ynpAsFIVsOpIeZVk/FXydHepALyuTGlasWdyJ3g4fqMmHfDacJGV3GBjiUdyEtJgHnx7UAa+WANLjFhw8NtL35di4xN3x+VXKt+WEg/sNgIO98EVdaNms5kVAUUmSFeK1c2WxK5uSXA8N7j4MloTZDY9/Lzp2zOiveVCDhzGuwAgDMEqFq7gwTuNWD+/3RAKy6+2kxYzE8Xla2EadcLxlZU9vEXOElVpZcKg X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 4b04faac-a2d2-4fdb-2181-08dbf25288fd X-MS-Exchange-CrossTenant-AuthSource: BYAPR10MB2888.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Dec 2023 09:47:30.4036 (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: cVNw0BzWw6VJaniwRZhEGRhArTPbU5N3SKK5pNASFLw1aswxDZo1invyLz/chHCMP5JXbUdc6BrvtQ0GdLykpnA3UOyDtPzkkZqWEHePNsk= X-MS-Exchange-Transport-CrossTenantHeadersStamped: PH8PR10MB6622 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-01_07,2023-11-30_01,2023-05-22_02 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 malwarescore=0 bulkscore=0 suspectscore=0 mlxscore=0 spamscore=0 adultscore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2311060000 definitions=main-2312010065 X-Proofpoint-GUID: DRq2eQ9O2GHDO_Oyb9b368spVv961us7 X-Proofpoint-ORIG-GUID: DRq2eQ9O2GHDO_Oyb9b368spVv961us7 X-Spam-Status: No, score=-12.7 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, GIT_PATCH_0, KAM_SHORT, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H5, RCVD_IN_MSPIKE_WL, SPF_HELO_NONE, 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 In BPF section names are used to encode the kind of BPF program and other metadata, involving all sort of non alphanumeric characters. For example: /* use auto-attach format for section definition. */ SEC("uretprobe//proc/self/exe:trigger_func2") int handle_uretprobe_byname(struct pt_regs *ctx) { uretprobe_byname_res = 6; return 0; } The above requires to quote the section name in the output assembly file, since otherwise the // in the name would be interpreted by the assembler lexer as the beginning of a line comment. This patch makes the BPF backend to emit quoted section names in .section directives if the name requires to be quoted. Simple section names whose constituent characters are in the set [0-9a-zA-Z_] are still emitted unquoted. Tested in target bpf-unknown-none-gcc and host x86_64-linux-gnu. gcc/ChangeLog * config/bpf/bpf.cc (bpf_asm_named_section): New function. (TARGET_ASM_NAMED_SECTION): Set to bpf_asm_named_section. gcc/testsuite/ChangeLog * gcc.target/bpf/section-name-quoting-1.c: New test. --- gcc/config/bpf/bpf.cc | 55 +++++++++++++++++++ .../gcc.target/bpf/section-name-quoting-1.c | 20 +++++++ 2 files changed, 75 insertions(+) create mode 100644 gcc/testsuite/gcc.target/bpf/section-name-quoting-1.c diff --git a/gcc/config/bpf/bpf.cc b/gcc/config/bpf/bpf.cc index 4bfba289546..ffd83a73102 100644 --- a/gcc/config/bpf/bpf.cc +++ b/gcc/config/bpf/bpf.cc @@ -1100,6 +1100,61 @@ bpf_debug_unwind_info () #undef TARGET_ASM_ALIGNED_DI_OP #define TARGET_ASM_ALIGNED_DI_OP "\t.dword\t" +/* Implement target hook TARGET_ASM_NAMED_SECTION. */ + +static void +bpf_asm_named_section (const char *name, unsigned int flags, + tree decl) +{ + /* In BPF section names are used to encode the kind of BPF program + and other metadata, involving all sort of non alphanumeric + characters. This includes for example names like /foo//bar/baz. + This makes it necessary to quote section names to make sure the + assembler doesn't get confused. For example, the example above + would be interpreted unqouted as a section name "/foo" followed + by a line comment "//bar/baz". + + Note that we only quote the section name if it contains any + character not in the set [0-9a-zA-Z_]. This is because + default_elf_asm_named_section generally expects unquoted names + and checks for particular names like + __patchable_function_entries. */ + + bool needs_quoting = false; + + for (const char *p = name; *p != '\0'; ++p) + if (!(*p == '_' + || (*p >= '0' && *p <= '9') + || (*p >= 'a' && *p <= 'z') + || (*p >= 'A' && *p <= 'Z'))) + needs_quoting = true; + + if (needs_quoting) + { + char *quoted_name + = (char *) xcalloc (1, strlen (name) * 2 + 2); + char *q = quoted_name; + + *(q++) = '"'; + for (const char *p = name; *p != '\0'; ++p) + { + if (*p == '"' || *p == '\\') + *(q++) = '\\'; + *(q++) = *p; + } + *(q++) = '"'; + *(q++) = '\0'; + + default_elf_asm_named_section (quoted_name, flags, decl); + free (quoted_name); + } + else + default_elf_asm_named_section (name, flags, decl); +} + +#undef TARGET_ASM_NAMED_SECTION +#define TARGET_ASM_NAMED_SECTION bpf_asm_named_section + /* Implement target hook small_register_classes_for_mode_p. */ static bool diff --git a/gcc/testsuite/gcc.target/bpf/section-name-quoting-1.c b/gcc/testsuite/gcc.target/bpf/section-name-quoting-1.c new file mode 100644 index 00000000000..2fa48de23fc --- /dev/null +++ b/gcc/testsuite/gcc.target/bpf/section-name-quoting-1.c @@ -0,0 +1,20 @@ +/* { dg-do compile } */ +/* { dg-options "" } */ + +/* Make sure that section names that contain characters not in the set + [0-9a-zA-Z_] get quoted for the assembler. */ + +__attribute__((section ("uretprobe//proc/self/exe:trigger_func2"))) +void +foo () +{ +} + +__attribute__((section ("trigger_func3"))) +void +bar () +{ +} + +/* { dg-final { scan-assembler {\.section\t"uretprobe//proc/self/exe:trigger_func2"} } } */ +/* { dg-final { scan-assembler {\.section\ttrigger_func3} } } */