From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-00069f02.pphosted.com (mx0a-00069f02.pphosted.com [205.220.165.32]) by sourceware.org (Postfix) with ESMTPS id 081E83954430 for ; Tue, 7 Jun 2022 21:44:07 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 081E83954430 Received: from pps.filterd (m0246617.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 257IQHSm010464; Tue, 7 Jun 2022 21:44:05 GMT Received: from iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta03.appoci.oracle.com [130.35.103.27]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3gfyxsf1s6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 07 Jun 2022 21:44:05 +0000 Received: from pps.filterd (iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com (8.16.1.2/8.16.1.2) with SMTP id 257Le3jU016431; Tue, 7 Jun 2022 21:44:04 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2172.outbound.protection.outlook.com [104.47.59.172]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3gfwu31y4p-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 07 Jun 2022 21:44:03 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=mazvZwKCgCtWxwgLt1cZdmyOy6G/YGAjC43DLFU2NHn7kZiyRDbsLEeaY/sgzmOzKFtT5dwqi2Wa+qla+vNZSZfiF+JPJ5/5GE0MGqpMBpruXJK14euOme4S+2/jtW7yoiJHyfqkmUQkPWdb5ka4C6F1pRZXjGqUi15kV+9PTYoHKscIUqg7vzExeUVQ3MyUay5/p8r0mAMssEjbHOOZzdl8tKKNPaijmp+UKJ+2Hnd5oUhjfPQ7LkbILm2oaxKDjwH/2dcJUNh+4m7hvs1r6d0QXGpcnk1dIS6aJQWFYm5Hhn4hzHhg/GpA5Wclv7fJ2ISQIm4N1T6PlurF4NCeGw== 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=tBdF04BHYVsVFyXdnLNcmnnX8A6RQChamTOmNPTlR6I=; b=hIKWBPaaXK2GZridsTyaBAd+9c6e/gW545dSC4I/lOMbzv9ofIPw5WccjhID3lZKN/Qz6OAhKpvYZFNsrtHkrJ0QTHbTdHSSr6KbClg8CqNAbzn+npd3xePOnGbnWcP16aZBRYL1nlGxu6X359hPJgnnnMH9OcDX7JNkubCtwt1przBce+wOdRW3pUnT2MUYC4Gu4459RU1mu+qfdfq2EL6w+ZIi5rFQEFA79Achh6YXxbm2LgCgVSNFigUVfsahpfFk6PyxdO069fO/Dq/fc86O5uuRWEsd1H747X/4R56HzamT449JMowM6ZHqxtD7Sg2dp7TT9Ai/t2jd46yB2g== 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 Received: from MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) by BN0PR10MB5351.namprd10.prod.outlook.com (2603:10b6:408:127::20) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5314.12; Tue, 7 Jun 2022 21:44:03 +0000 Received: from MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::4939:15e0:57cb:87fb]) by MN2PR10MB3213.namprd10.prod.outlook.com ([fe80::4939:15e0:57cb:87fb%5]) with mapi id 15.20.5314.019; Tue, 7 Jun 2022 21:44:03 +0000 From: David Faust To: gcc-patches@gcc.gnu.org Cc: jose.marchesi@oracle.com, yhs@fb.com Subject: [PATCH 3/9] c-family: Add debug_annotate attribute handlers Date: Tue, 7 Jun 2022 14:43:36 -0700 Message-Id: <20220607214342.19463-4-david.faust@oracle.com> X-Mailer: git-send-email 2.35.3 In-Reply-To: <20220607214342.19463-1-david.faust@oracle.com> References: <20220607214342.19463-1-david.faust@oracle.com> Content-Transfer-Encoding: 8bit Content-Type: text/plain X-ClientProxiedBy: DM5PR11CA0003.namprd11.prod.outlook.com (2603:10b6:3:115::13) To MN2PR10MB3213.namprd10.prod.outlook.com (2603:10b6:208:131::33) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-Correlation-Id: 40f6969a-30aa-4d3c-b14b-08da48ced6bd X-MS-TrafficTypeDiagnostic: BN0PR10MB5351: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: uQ3uMSbAo2Ai1BGD2qmM4ePDaCIVf5I5XN36zAOZToJDtNqKnLwQrNlKRkdSFdwmXUAxqnDkudPJDLn8Y7sPCC+jV6ceR4tJk2L0Crvxo1IlpTBaZ6bTlk7ktB5OREbTClS7SmWn78LVlU4/zjjo+mU5SdfZqyVc0Y4tVepWYDxSiK6kAASJEpTVsHib7MhH8ERb41/MW7o0kh7aqc+3eU5GMzA5ppjqo7apqggZ8t5lkg2SS1PYz2eMI+tBc33mEHpnBVFozWNbHLP2draOJ2xcdqZxM5/zEruZrB20fCyJqGBjBVK4bgl9VGQ9RFsX9Ylv0wFRNrWMcvSaMh6zddDAYllkEqOTIVqvPfqfybmZiTyXjDSzIixWMTjWIIg7PdR66zxX8dlgiG4Gg1lnohTrz/+9MInnGcSXCjy9gS0c6uxIwXEHchnlGY8k5nZPmsEK08P7mDY1IQ5Kcg/+QOvwAO9a15HdeXfoFJ4sZU27mBVQP7tSpO8htGw3/QlApKBxKVgxJ3QrqmItve5o2S+/OjY3dvb+k9du5+NxJDsEjQF8cEisdbPYYPnGX60z47qH9WQU4ZU2yuJJ9m52YIv39njkBF6MWyyFhm++z8/eP9noE6PUTrmDH1jdQgP13iiydcYDJurLZqM7bSVFJQ== 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:(13230001)(366004)(508600001)(36756003)(6916009)(8936002)(1076003)(5660300002)(6512007)(2616005)(2906002)(66946007)(86362001)(38100700002)(83380400001)(66556008)(66476007)(316002)(6486002)(44832011)(8676002)(4326008)(6666004)(6506007)(186003)(52116002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?us-ascii?Q?kNhtFa30iRqmGsHM5gXY/cgFG8+CRwPDP9ru8FXIkGvRDvZkpt9J63OnVdz4?= =?us-ascii?Q?zguX3LHeSccXGqwggOddVUvFGbW0Wd2asQWd9kBPqAnVHIoWkVKiAteMYASh?= =?us-ascii?Q?pz7KrW3MSVawOFkNqy9yldIG9ePPMne3HcuE0l1FXCKTOaGJ1P8A2iugvyVQ?= =?us-ascii?Q?2u0EipuUCTipmiIXDfyXIRev4oOzJ7rxuOW0faJZin4puQKmjI/KTXnel3vj?= =?us-ascii?Q?dS6H9nBvPrpwbzA9jaJQPdLW0rdi3O3RZp4Fu2BbqYCOu873V7UZsoWNYxLl?= =?us-ascii?Q?iSVix/Cjg6IbbZ08gvprs/EnGy56cuSACqgJem8ghDPimYdYGbX3CbZDgfie?= =?us-ascii?Q?b5G5ciyFuGwBEnioSx+Z7Guxqev8ZsFoJCeF08Xo4muWm7scOlsmRivBf5J3?= =?us-ascii?Q?IMCEGhdqmNa1G+3giPjRR+aFSKfzvPVWdXddswxjArrGJjEBwOotT3unNWYX?= =?us-ascii?Q?dgg2QuRfJtBt8uVEDeCk8e1zHvzsZa4eLH+GYy6ZOGC6DnSC/OTTt9OxtjZg?= =?us-ascii?Q?AyLgG1BsFXZeYRq8KqmGz7aXoJFcWUt4N0vjLRsXj8UrVH1HCqBoNhKKi5ZG?= =?us-ascii?Q?Ny5fApUlwZQPYIbY4zDXhJzj+2XXbE813vJwuNGeEBVTIjG4zjkiN+McnUnH?= =?us-ascii?Q?Igm+9W8f+fMYsXWB1Xvm0fnG9xwRFG5/rCODHIkXj2zAeINo5Tgea2YLMleJ?= =?us-ascii?Q?+ZlmYi40oxmFdaEnWRUAd9da2FlrIvLpmWDbb2HgqlBAhlSPtKJCgm5nvFYR?= =?us-ascii?Q?XvEJJGsyaHpS3GpzhLOVejLWLaAwCiK8y/adFVzdoV4M2lOpIx3QFRBsmud9?= =?us-ascii?Q?y9lzZKxXVy4gGWTATS6aqNqAhX241ojAmIz+neuTWMm8LiCDihjdo+4scanF?= =?us-ascii?Q?Gzg7xfcHD8633vuI4ukNCEZoRm3+rWHdGICornEKqPlfiRChEINSj6pu7KpK?= =?us-ascii?Q?df0znghHnhRz/gBlO64ahbiIz5ZxmAv2nrtOtH26okBOILE8bY7pEFoEiyqO?= =?us-ascii?Q?2mFS5p2nCmiUmTnaInmadDIeFJiuZnDKgXQ0eAIiGuHhFEA9qoj7GUAEAAGH?= =?us-ascii?Q?Cy7Qg0KezBcKDuTpzAfSlXRgL4XCHe/wUeWm2LoqVBOEEHWiXoV7AjtCzRUa?= =?us-ascii?Q?vKenlUpfueLlpczojVNheepYjeMKeaB05nLCwjfd4MFUz1wAW2C7hspfxSjh?= =?us-ascii?Q?Fxj/POxnymUR+at1QY2GYdtZaV7O+GLIhrDaCj5vFJu2SUPbiDAs/PCebnxS?= =?us-ascii?Q?bzbCdX15crEZU35khF4acoMt+qNMCGZXnUzNkKPLWe+ZniNlmIdESwz0QSnr?= =?us-ascii?Q?21WZviLD9BLCwj+4iVWL5/h989TAd7PX8bcA5Cyr8G8R9oR0dOEQS/3AK+hW?= =?us-ascii?Q?+oI9iLl/PlQxDx+XS+GxcGQytAvn42CCcCSRIQ3OX3o78DDhm2XcHXBULc4g?= =?us-ascii?Q?YYbzJ4zkXnLoy1gHhFklDXPWIAHMfm/frmeJZTgTc0S6BenvUzQ1vI8m48wY?= =?us-ascii?Q?pTYdzbBAPL/RQGvqQGh0wj2pGBFjBRzZLnVkAucx+DALNB6xkidSU0VF9lI4?= =?us-ascii?Q?h1ehJjmISOK3q29J54k6r/MQ0PzWNfmrGHxqhU0l+9ta0+78E3/lrcL+OtfS?= =?us-ascii?Q?nfdZ6DqrF6DXi2VQsFGs9FJaIgexGOOBV/s8YLjIn+w5XSiMWoNhOlxF921k?= =?us-ascii?Q?fuCavvNvam9CwmH8mIt4sTHbaef4HO96ZTi58phss8xo/EZBkyYtDUbPthAF?= =?us-ascii?Q?KSelv1eYZfZVIyPKvK9xxD2Ki6tqPWXm9jmO5EhB23zhnwtJkKol?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 40f6969a-30aa-4d3c-b14b-08da48ced6bd X-MS-Exchange-CrossTenant-AuthSource: MN2PR10MB3213.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 07 Jun 2022 21:44:03.0971 (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: d5MPrkU+0/MBVEp5jH9W5XBUoWjSCRgxeY/iHACf28YAjP3bzV/9a0gnBHjGQiu7gGgFk1nys296+AaEi610hw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: BN0PR10MB5351 X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:6.0.517, 18.0.874 definitions=2022-06-07_10:2022-06-07, 2022-06-07 signatures=0 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 phishscore=0 mlxscore=0 adultscore=0 spamscore=0 suspectscore=0 bulkscore=0 malwarescore=0 mlxlogscore=999 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2204290000 definitions=main-2206070089 X-Proofpoint-ORIG-GUID: gLu9-EgrDOXWzdrO_SFt7qWcSFl5glA0 X-Proofpoint-GUID: gLu9-EgrDOXWzdrO_SFt7qWcSFl5glA0 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, RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H2, 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.29 Precedence: list List-Id: Gcc-patches mailing list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 07 Jun 2022 21:44:09 -0000 This patch adds attribute handlers for two new attributes: "debug_annotate_decl" and "debug_annotate_type". Both attributes accept a single string argument, and are used to add arbitrary annotations to debug information generated for the decls or types to which they apply. gcc/c-family/ * c-attribs.cc (c_common_attribute_table): Add new attributes debug_annotate_decl and debug_annotate_type. (handle_debug_annotate_decl_attribute): New. (handle_debug_annotate_type_attribute): Likewise. --- gcc/c-family/c-attribs.cc | 43 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/gcc/c-family/c-attribs.cc b/gcc/c-family/c-attribs.cc index c8d96723f4c..50e8fc1b695 100644 --- a/gcc/c-family/c-attribs.cc +++ b/gcc/c-family/c-attribs.cc @@ -174,6 +174,9 @@ static tree handle_signed_bool_precision_attribute (tree *, tree, tree, int, bool *); static tree handle_retain_attribute (tree *, tree, tree, int, bool *); +static tree handle_debug_annotate_decl_attribute (tree *, tree, tree, int, bool *); +static tree handle_debug_annotate_type_attribute (tree *, tree, tree, int, bool *); + /* Helper to define attribute exclusions. */ #define ATTR_EXCL(name, function, type, variable) \ { name, function, type, variable } @@ -555,6 +558,10 @@ const struct attribute_spec c_common_attribute_table[] = handle_dealloc_attribute, NULL }, { "tainted_args", 0, 0, true, false, false, false, handle_tainted_args_attribute, NULL }, + { "debug_annotate_decl", 1, 1, false, false, false, false, + handle_debug_annotate_decl_attribute, NULL }, + { "debug_annotate_type", 1, 1, false, true, false, false, + handle_debug_annotate_type_attribute, NULL }, { NULL, 0, 0, false, false, false, false, NULL, NULL } }; @@ -5868,6 +5875,42 @@ handle_tainted_args_attribute (tree *node, tree name, tree, int, return NULL_TREE; } +/* Handle a "debug_annotate_decl" attribute; arguments as in + struct attribute_spec.handler. */ + +static tree +handle_debug_annotate_decl_attribute (tree *, tree name, tree args, int, + bool *no_add_attrs) +{ + if (!args) + *no_add_attrs = true; + else if (TREE_CODE (TREE_VALUE (args)) != STRING_CST) + { + error ("%qE attribute requires a string", name); + *no_add_attrs = true; + } + + return NULL_TREE; +} + +/* Handle a "debug_annotate_type" attribute; arguments as in + struct attribute_spec.handler. */ + +static tree +handle_debug_annotate_type_attribute (tree *, tree name, tree args, int, + bool *no_add_attrs) +{ + if (!args) + *no_add_attrs = true; + else if (TREE_CODE (TREE_VALUE (args)) != STRING_CST) + { + error ("%qE attribute requires a string", name); + *no_add_attrs = true; + } + + return NULL_TREE; +} + /* Attempt to partially validate a single attribute ATTR as if it were to be applied to an entity OPER. */ -- 2.36.1