From patchwork Tue Jun 7 21:43:38 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: David Faust X-Patchwork-Id: 54920 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 ED137395440F for ; Tue, 7 Jun 2022 21:48:34 +0000 (GMT) DKIM-Filter: OpenDKIM Filter v2.11.0 sourceware.org ED137395440F DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gcc.gnu.org; s=default; t=1654638515; bh=FpSmdvvF7DXm39z3U3I05X7+UUt0Koo4Rs+QANFnXso=; h=To:Subject:Date:In-Reply-To:References:List-Id:List-Unsubscribe: List-Archive:List-Post:List-Help:List-Subscribe:From:Reply-To:Cc: From; b=miBP8HkWRoYlCYiPaVqoXKPqPFp6jHFsSIIokkYiqKHMumhocs1WuWmXewPMgGJfC na2EiKYNx4BSXDO0ALgzsCuY1zsgif7nt+OxXrztV8UX6l3iuPacq5QL+EI9VaenJ1 V+FheNaqdFOgkMo4tr5lIJejfLExBSiUWFrX4vVc= 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 C917E395253A for ; Tue, 7 Jun 2022 21:44:08 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org C917E395253A Received: from pps.filterd (m0246632.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 257IJH8N006530; Tue, 7 Jun 2022 21:44:07 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 3ghexecbft-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 07 Jun 2022 21:44:07 +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 257Ldwau016135; Tue, 7 Jun 2022 21:44:07 GMT Received: from nam12-dm6-obe.outbound.protection.outlook.com (mail-dm6nam12lp2171.outbound.protection.outlook.com [104.47.59.171]) by iadpaimrmta03.imrmtpd1.prodappiadaev1.oraclevcn.com with ESMTP id 3gfwu31y54-2 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK); Tue, 07 Jun 2022 21:44:06 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=UcV3VoW8CKmzhxC/Yk1OfkObeLNF6ydYPnoai+DX9Q709yNuI12oxeyVUQ5tkQ0RrOO7w3Y8bIg1HqwjCtOQ3YHd6nnr61eVPyzWjrQ+6sqmLZoEhTIVuq+9Plp8UHbX0qs4bLEI9EfQ6X1thK+WaH/WGnECzTjPOJSugiqu0ro+bYEFUMkV9+DzYgmeWXqBK1jV7lb4wnGKym9zbOwpaXlI2AssrUw7nwunRYMFlhNJNpwxYdDAOVxNZLn/SjxNmyEh+HZUX0s5fY/PE18kxr5kbORQ0boFisEgepApS6LjjBmDW6DW2bQ3LVQ6JX7vwo26L4QS2mIIdRg/7bDLbA== 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=FpSmdvvF7DXm39z3U3I05X7+UUt0Koo4Rs+QANFnXso=; b=dYAcPZC5sfEvbtUC+KlUdxQqa8TzpWYdE35xF41RxOPSkO+JN4PNfVG6ztjK3B4aPXjb+FdHPtgmKxyqymn9bdZRonPCHAkyxo3Jn+p7jAI+sJFVw3EiPyyZygWhOtWrCp8j4qULQoqfnSxcwwNj/8P6ZOtfchSWVCxm0g2E5Er5sHnGXT8+LgEeCN+f2rY++F4HNQk8BeJdIsH+AtGjqkjQt8OhipE00V1Fftb2lboLRSw0ACiqTjZhvtKlkLcsTC9MdgKWLHsDsLpWc9oOWxYqGNGbhT+DPRG2i+drRxfAHwShEVXEB/HxgoPvNQwRqLUUXdfVo1ZwR8EwBxG0AA== 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:05 +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:05 +0000 To: gcc-patches@gcc.gnu.org Subject: [PATCH 5/9] ctfc: pass through debug annotations to BTF Date: Tue, 7 Jun 2022 14:43:38 -0700 Message-Id: <20220607214342.19463-6-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> 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: 3b4f9094-46ff-405e-1403-08da48ced7ea 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: Rya+Dq0z3fJdLdC2ws4Yovm6p8X7001e3TLPpKxNUlJIqHnX5vUnEnAEB4dGLydqhXjrb48cJsT1brDoyxbQf7h/5DNAoK28LYwQU3PN8N5x2xnbEXHkLFKKz+nQXc5XLqWAj3QlhkWBEjFIinzpPhzbin6y3TsEv61NpVC1ESQcN1hOu0GsGxLEjntInPTPHz86sUnJyuBj/NGTVWd0rc8RsMtJl4DN4gHZwPPLrrnjHWyTEpkHjh3WTC31A1jSxzfe/WTraemTd9YokiGzNYI9fmyqXeBKPkY2KORClYE5kiwaV5z1hg87U2gWk8ICprzZRVhd4ZkS0Rl20KOgUcfPce6hdTPr/L+TxSH1ANNv4kmrsD5BOMLujJHzAU5O8uGRtudMoRgQwZJFjHRpAxcspzVhtzBx764frTfpaUmi6Tw88+1vwRX6cXQakEwkINZVDvX4mVObzMtR5tZ+RUsbcPLfzi0nHgJAEGfBA2xq1VoJ2/8IrGDnGOCCVxqTc3azNmlGAZsOTBJmkm6hSZdCvZhYY25LulIixMK1frY2lSSMYXHIyM8CJcbnA1kD1B4sjP/4/Xci+3Uu7SY+4HMv9tahm5vDTzYEaFJo3hIOXfY9lQTuPkTqEo++Ze0krC7tsD0iBwNgJholF/lnCsVaoJlwUpF5T5j3f+ztFnqwF3c6nxuGlmI/xdxKvkY1cRdyZjHMl8/Yz3n7Fh+vX3hslfqC4hp/ASq6y3Y/m7rAHwJ1CpPl0QrKFpQ23tzT9aOA0QZtIhnTVDNaiPP32w== 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)(2004002); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: 1WK1lN2vV36Kxh0zQwn35yxtoF/tNxrIi6o2oDfrtl9fzixaCwsKmlS75Nfwqcvo27GPHysGIgtqxspcsk9X602Vd3gwSpx9+2YOsH9gwQAXuHJLcp/vQGWh/wiozq/LlhJgW+s3hkUjWZ036ug2ldUd9xYl8/jqKtXh7Jnwm77hSsVwJy1/Ubu/Kdmi9rPycUFn+Thv4EaWvjWm6deaipkMIelFsoB/cf44IkDvVoHWUMupSoCEmFIOs3IgNDU5SvdIaJ+0PpFTgq9vxYRcrQznsNfayne/8fieuJQbbKjhmHsRdi9wJzeUoOyZJGgGU42DBCmaTIZg/n0VcnEijNQAtJmWZt1wOwPY3eDLlU8uGQYfUGPJnfDnYeU1EieXdrXLSaxqz++5IiYn+KiEQXYs1lpIoSXZfUuJIYkCofMmRsdfBeiIEXxMnF031Ce7YTQHxoKoAXPEnSHXd1BAkuhRoJxQoNMtLGiqR4KuujtviuH+M6pFBCh4mq7PyrsinZM31iRii24tKw6B1O7kzBHtYifbVe2sTSPlVtKoK0zMHFMr33+QFqYM0KaQLctugFiavnJO48rc/kHMexcqQTQHAOdzRDWeQJuLIksU6CVsZiEiULB1Tyalf2wA+vd6L30P8EnXGzDYRD7mH4obPJB4dhz4gzH3bPcD23dwJbzFrtaGV18AFlbylOquRK2kCOX1DA9bqdr1fSVzaHHedlRAfZo5q/3r+6J0ALbrC6mfhMjpLPztVPf2v8XuOtzMKm3iYLoDQaFiL5qa/riwZ2RAKY+sLODYzoUgFY/VWc+w3nFDhrwTMzXc/+oaJnngegJNCJ1/wWaYjZ8cRdE5BFvOkg4GGcImRukal9wqztt7OKxG7Kvs7FZhLKOCdqmJpI6rr6BLVZd2fLQBaGEzFeMJQar+FAWwU+GrEbg71ze5WRKW9lgVyh+x1SHo9ENQPtjVvHDMeGvmzfkrJb2wiY4nlezWq9QdGEuQT1u5cwHDo5EYeXoJbmmb0Kb0CdyfFCVy/z4/hcyCFJV5MuTU/bDz4sS0OSqXaBuzFZcxQe3Zm5Fz88Ph7+oKgExF7tmazbq4VWHYya5OPZFj7AUEwFR4LO1ytQ0D5KQegpk6xLwoCBnCKdSK+ayLQpb+fBSEqTE5OL+MyPv7b2jo7Sl9n8f06IYIzDUCouUn8KflSeVGW/fy/S1XS4TKF8LEt7rHKLHxTJstEp/UDNIG46TBBCRtxIfv6UcU6UhkblmzO+UasxoLWrtOnLwzX/q5uf5ZFtvO3L/uYqaos7NAc/wUp8EqfLvX4oZxuynq4vq3GeCHeAT+taTZogK0+JlZn74jbHcLxQfaojdxLPbLQuhDwrIzSh8D7OSOC1lTgYCLlhXJBm1b6dMKh/hltsqXF2O6bp07Y8bWvW+3qRCmF4AzKI/hmPx1tgtCk84wcmfhUYWRAjrgJqi3SjHeS7/PwybY+gOERSL2IMLMl7KS2JIx/i/J5o1F27KGLI3UK0aDJGtSmpebgOdMfsEqFXp2cBDIUkN4+rQYR6YqyCjU6OUPRy8FXshPF36oqI9V0Qu9sM8wG8TS2gEZa7x/dnfwgrDJEftRCqCUd8E2lZUkT+LASgF4jv8jZR09DdQ7EkwVsfVrogP+rfmp8wV0YB4OcdR9/OiyRtD6XkfWxKmwXV07KmckE1oyDobyoKGcp7VmW9mAl8Qlx9FnnoaEKPVQsU3zIsgDsNGJZT5cf7T+RLmdfLqbpGA/ewuNFzXzzdPIz9UpYq0HK3RgTDP1EppWB8XD X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: 3b4f9094-46ff-405e-1403-08da48ced7ea 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:05.1751 (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: YTV+ynNbLngyERiccyvIHPb3hAjZD1smmPLqVbI1xCyk7K08gIZn+PFkwcq9RZFbCZkKpZuSO7pQdi+OosgU5w== 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-GUID: SQlz4-kWEh9rrtajcuexLjv3HpKCseqy X-Proofpoint-ORIG-GUID: SQlz4-kWEh9rrtajcuexLjv3HpKCseqy 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_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-Patchwork-Original-From: David Faust via Gcc-patches From: David Faust Reply-To: David Faust Cc: yhs@fb.com Errors-To: gcc-patches-bounces+patchwork=sourceware.org@gcc.gnu.org Sender: "Gcc-patches" BTF generation currently relies on the internal CTF representation to convert debug info from DWARF dies. This patch adds a new internal header, "ctf-int.h", which defines CTF kinds to be used internally to represent BTF tags which must pass through the CTF container. It also adds a new type for representing information specific to those tags, and a member for that type in ctf_dtdef. This patch also updates ctf_add_reftype to accept a const char * name, and add it for the newly added type. gcc/ * ctf-int.h: New file. * ctfc.cc (ctf_add_reftype): Add NAME parameter. Pass it to ctf_add_generic call. (ctf_add_pointer): Update ctf_add_reftype call accordingly. * ctfc.h (ctf_add_reftype): Analogous change. (ctf_btf_annotation): New. (ctf_dtdef): Add member for it. (enum ctf_dtu_d_union_enum): Likewise. * dwarf2ctf.cc (gen_ctf_modifier_type): Update call to ctf_add_reftype accordingly. --- gcc/ctf-int.h | 29 +++++++++++++++++++++++++++++ gcc/ctfc.cc | 11 +++++++---- gcc/ctfc.h | 17 ++++++++++++++--- gcc/dwarf2ctf.cc | 2 +- 4 files changed, 51 insertions(+), 8 deletions(-) create mode 100644 gcc/ctf-int.h diff --git a/gcc/ctf-int.h b/gcc/ctf-int.h new file mode 100644 index 00000000000..fb5f4aacad6 --- /dev/null +++ b/gcc/ctf-int.h @@ -0,0 +1,29 @@ +/* ctf-int.h - GCC internal definitions used for CTF debug info. + Copyright (C) 2022 Free Software Foundation, Inc. + +This file is part of GCC. + +GCC is free software; you can redistribute it and/or modify it under +the terms of the GNU General Public License as published by the Free +Software Foundation; either version 3, or (at your option) any later +version. + +GCC is distributed in the hope that it will be useful, but WITHOUT ANY +WARRANTY; without even the implied warranty of MERCHANTABILITY or +FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License +for more details. + +You should have received a copy of the GNU General Public License +along with GCC; see the file COPYING3. If not see +. */ + +#ifndef GCC_CTF_INT_H +#define GCC_CTF_INT_H 1 + +/* These CTF kinds only exist as a bridge to generating BTF types for + BTF_KIND_DECL_TAG and BTF_KIND_TYPE_TAG. They do not correspond to any + representable type kind in CTF. */ +#define CTF_K_DECL_TAG 62 +#define CTF_K_TYPE_TAG 63 + +#endif /* GCC_CTF_INT_H */ diff --git a/gcc/ctfc.cc b/gcc/ctfc.cc index f24e7bff948..a0404520b2a 100644 --- a/gcc/ctfc.cc +++ b/gcc/ctfc.cc @@ -107,6 +107,9 @@ ctf_dtu_d_union_selector (ctf_dtdef_ref ctftype) return CTF_DTU_D_ARGUMENTS; case CTF_K_SLICE: return CTF_DTU_D_SLICE; + case CTF_K_DECL_TAG: + case CTF_K_TYPE_TAG: + return CTF_DTU_D_BTFNOTE; default: /* The largest member as default. */ return CTF_DTU_D_ARRAY; @@ -428,15 +431,15 @@ ctf_add_encoded (ctf_container_ref ctfc, uint32_t flag, const char * name, } ctf_id_t -ctf_add_reftype (ctf_container_ref ctfc, uint32_t flag, ctf_id_t ref, - uint32_t kind, dw_die_ref die) +ctf_add_reftype (ctf_container_ref ctfc, uint32_t flag, const char * name, + ctf_id_t ref, uint32_t kind, dw_die_ref die) { ctf_dtdef_ref dtd; ctf_id_t type; gcc_assert (ref <= CTF_MAX_TYPE); - type = ctf_add_generic (ctfc, flag, NULL, &dtd, die); + type = ctf_add_generic (ctfc, flag, name, &dtd, die); dtd->dtd_data.ctti_info = CTF_TYPE_INFO (kind, flag, 0); /* Caller of this API must guarantee that a CTF type with id = ref already exists. This will also be validated for us at link-time. */ @@ -548,7 +551,7 @@ ctf_id_t ctf_add_pointer (ctf_container_ref ctfc, uint32_t flag, ctf_id_t ref, dw_die_ref die) { - return (ctf_add_reftype (ctfc, flag, ref, CTF_K_POINTER, die)); + return (ctf_add_reftype (ctfc, flag, NULL, ref, CTF_K_POINTER, die)); } ctf_id_t diff --git a/gcc/ctfc.h b/gcc/ctfc.h index 001e544ef08..fab18f024d7 100644 --- a/gcc/ctfc.h +++ b/gcc/ctfc.h @@ -35,6 +35,7 @@ along with GCC; see the file COPYING3. If not see #include "dwarf2ctf.h" #include "ctf.h" #include "btf.h" +#include "ctf-int.h" /* Invalid CTF type ID definition. */ @@ -151,6 +152,13 @@ typedef struct GTY (()) ctf_func_arg #define ctf_farg_list_next(elem) ((ctf_func_arg_t *)((elem)->farg_next)) +/* BTF support: a BTF type tag or decl tag. */ + +typedef struct GTY (()) ctf_btf_annotation +{ + uint32_t component_idx; +} ctf_btf_annotation_t; + /* Type definition for CTF generation. */ struct GTY ((for_user)) ctf_dtdef @@ -173,6 +181,8 @@ struct GTY ((for_user)) ctf_dtdef ctf_func_arg_t * GTY ((tag ("CTF_DTU_D_ARGUMENTS"))) dtu_argv; /* slice. */ ctf_sliceinfo_t GTY ((tag ("CTF_DTU_D_SLICE"))) dtu_slice; + /* btf annotation. */ + ctf_btf_annotation_t GTY ((tag ("CTF_DTU_D_BTFNOTE"))) dtu_btfnote; } dtd_u; }; @@ -212,7 +222,8 @@ enum ctf_dtu_d_union_enum { CTF_DTU_D_ARRAY, CTF_DTU_D_ENCODING, CTF_DTU_D_ARGUMENTS, - CTF_DTU_D_SLICE + CTF_DTU_D_SLICE, + CTF_DTU_D_BTFNOTE }; enum ctf_dtu_d_union_enum @@ -402,8 +413,8 @@ extern bool ctf_dvd_ignore_lookup (const ctf_container_ref ctfc, extern const char * ctf_add_string (ctf_container_ref, const char *, uint32_t *, int); -extern ctf_id_t ctf_add_reftype (ctf_container_ref, uint32_t, ctf_id_t, - uint32_t, dw_die_ref); +extern ctf_id_t ctf_add_reftype (ctf_container_ref, uint32_t, const char *, + ctf_id_t, uint32_t, dw_die_ref); extern ctf_id_t ctf_add_enum (ctf_container_ref, uint32_t, const char *, HOST_WIDE_INT, dw_die_ref); extern ctf_id_t ctf_add_slice (ctf_container_ref, uint32_t, ctf_id_t, diff --git a/gcc/dwarf2ctf.cc b/gcc/dwarf2ctf.cc index a6329ab6ee4..393aa92d71d 100644 --- a/gcc/dwarf2ctf.cc +++ b/gcc/dwarf2ctf.cc @@ -511,7 +511,7 @@ gen_ctf_modifier_type (ctf_container_ref ctfc, dw_die_ref modifier) gcc_assert (kind != CTF_K_MAX); /* Now register the modifier itself. */ if (!ctf_type_exists (ctfc, modifier, &modifier_type_id)) - modifier_type_id = ctf_add_reftype (ctfc, CTF_ADD_ROOT, + modifier_type_id = ctf_add_reftype (ctfc, CTF_ADD_ROOT, NULL, qual_type_id, kind, modifier);