From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0b-00069f02.pphosted.com (mx0b-00069f02.pphosted.com [205.220.177.32]) by sourceware.org (Postfix) with ESMTPS id 45B433858D28 for ; Tue, 11 Oct 2022 18:55:30 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 45B433858D28 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=oracle.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=oracle.com 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 29BHT39B031970 for ; Tue, 11 Oct 2022 18:55:29 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=subject : to : references : from : message-id : date : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=YwsZYEcnftKaEnuE4g8ZyHZfiDdAB2fv+IiPqnJ/zBo=; b=0CqpndonRNlzfLbn7tr1zuQA3D4DNT8oVleUjxvUH2eEqBlZVtPGNTZXE7UScewCemnv oxL05yKd7leUPU/BfKMTPdWtYlxcZPhExTX68h0n/qL4blRLnG92FOgWVRar7E3EsWTA wntNq2K92/UnciEumgbFtdswaGyzxltonALpw0YpeTPEO17iKSOWmx4FT/0PsQ0gNjHQ e3vzadc6uAODKaLF5S7hA2FQ9K6S1Nre1MHnUFW+HG+MrIfLbLIgfUZcxtjq8wKpWg+k CKQRwFEsGlDdk90zamPDOwkagqC3U7GO//NVDKBuL6LzZ+xTgZpX1kHwZxL4hxPE9NsO mQ== Received: from iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (iadpaimrmta01.appoci.oracle.com [130.35.100.223]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3k30tt7qg7-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 11 Oct 2022 18:55:29 +0000 Received: from pps.filterd (iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com [127.0.0.1]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 29BH4W8a027700 for ; Tue, 11 Oct 2022 18:55:29 GMT Received: from nam11-dm6-obe.outbound.protection.outlook.com (mail-dm6nam11lp2176.outbound.protection.outlook.com [104.47.57.176]) by iadpaimrmta01.imrmtpd1.prodappiadaev1.oraclevcn.com (PPS) with ESMTPS id 3k2ynag1up-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Tue, 11 Oct 2022 18:55:29 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=eWEcPjNiIRbLrrfym60F+RnKpOCbK24lKOVvbqHwsWOdvbrb8VRrv0rbYuMhDCpYm9L3JQxpszexOKfA829hi4PbUD/4uRkNJeYBfH7bK614lopws8w3e5QxE+k3FhuqRyOfcH7W/6BAqCg+2a2JM8A3p1x0fsisI7dPf+rpZDtUYvy08VsNNT0JxktaQ164yboBWLVuXZsEXfhNalWrWpK4k+pG4nBvcbe1eM4pJzn1iWWs2UEnKAEKb6b2cfXs89cN3l8ICe1bb5rx78GqRuR9e0n/MZTlXRyXDTUdRDzSGSKQlzlv4a6SaDop9RH2IdGuC85W1cTG8jmmxYR7+w== 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=YwsZYEcnftKaEnuE4g8ZyHZfiDdAB2fv+IiPqnJ/zBo=; b=ml/4WiBRJWWny+NnC931GEFFbQvsJ49aH6qsgIqi6LYpEk5q9YOCYrn6IUioseB+KL9UNVhvOxvY+pOMPNPwITmv5m1YR1fs7AL1BzbbZ5/9OgVxp/lyawNW9Uui+us8G0OlCKeHp4qJX/DaeenlfkB8uDgpq/lrjnu2X5LSqENWj3taKY2IwrAMhSvXPD8p0PsmdHPtrT0OIWXwld0LhvRrdOMDEmfEQbIdGmoFpP+ONgi3sDRquMCrHqxzzFVtrOaxwkCMCEmiQgCA1g5g743xTgShGWS3NWkYz6uiGIQ3RoM/PmwNfKnDnMwgOC05XJNILZJTAue/etyCaZp74A== 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=YwsZYEcnftKaEnuE4g8ZyHZfiDdAB2fv+IiPqnJ/zBo=; b=qxqxRffHf8YmNk6tn4BQiBUzAP16SqwDlmXXs7Hh1P5NirABinu92tbVvgqFZwAEIdaoIr8X0OvEmvamuBTBsrvBxTE5M+MltRGsONKTnTGGutD06IuHbIYTlBymI6Wt9g/lDDO9J3t6LKUktXl7QYiNzqf4JD7U2Cx2zAMzmeg= Received: from MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) by CH0PR10MB4987.namprd10.prod.outlook.com (2603:10b6:610:c1::12) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5676.24; Tue, 11 Oct 2022 18:55:27 +0000 Received: from MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::4cdb:33:df30:8496]) by MWHPR1001MB2158.namprd10.prod.outlook.com ([fe80::4cdb:33:df30:8496%4]) with mapi id 15.20.5709.019; Tue, 11 Oct 2022 18:55:27 +0000 Subject: Re: [PATCH v2] btf: Add support to BTF_KIND_ENUM64 type To: "Guillermo E. Martinez" , gcc-patches@gcc.gnu.org References: <20220829211106.427267-1-guillermo.e.martinez@oracle.com> <20220928211501.2647123-1-guillermo.e.martinez@oracle.com> <3995d832-83b9-848f-6d58-0525a0f588e3@oracle.com> <6c9e3ce7-2365-81b3-d3e7-464ec06622cb@oracle.com> From: Indu Bhagat Message-ID: Date: Tue, 11 Oct 2022 11:55:22 -0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.6.1 In-Reply-To: <6c9e3ce7-2365-81b3-d3e7-464ec06622cb@oracle.com> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SA9PR03CA0007.namprd03.prod.outlook.com (2603:10b6:806:20::12) To MWHPR1001MB2158.namprd10.prod.outlook.com (2603:10b6:301:2d::17) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR1001MB2158:EE_|CH0PR10MB4987:EE_ X-MS-Office365-Filtering-Correlation-Id: b5d497d7-371c-4c25-799d-08daabba28f6 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: /8qGvBVP/zYnBNBTag+rnCAx24087U0oSZTEO78Z6N51RdC0/WO+O149Ch7KIToT0jfsxg3rel5MZ2hV6HVuMvR7Afgysjs5WqYVt5nRIOmIPDE3g+qugvcCrGEjdwsqemQPhT4BccQ4DXUpBy47sRe5XNf86dT9pe6m4IRPK0VdVSp6GYxr0fSILNB3/M83Pwoa4H3uMEo3Fg5r8y95ymKh2L8dnuqbbln/O8FNM0F5NRoUjWC+X5SccDX8DPQUt2Oq5MuJnRHDFKiqpOBxCCrJFjuWFpoNjjH2XZE2AH70b/3aJE8+YKJvkAxZELldVHADJA3SFb83+wSR1tPs1xD1JLlp8tGtk6lrdbRiuqV1s0mtAZMmNxIbVYB1nSOK6YFD14MQmlNov59lq0kFN6baYgJDbAvbZS565DE/kKssMQRMXUmeyHNmewTBcEPSrLNRFVniDSHnM7rpk3smazV57Y2wJ7oEvtJoJ4Kno660h+TZBdrT8kBJ2M3zAMGRvGtqnX3/VZxOFBsvYoFsGB725tcBJvN2eaMSErHdWUWMm110FD/EM3Nh5S8rXQS2fR+/+BpOwTDrtnsZ0afYxFpdmuNXSwndmNekH9zz02DtG/Z8uxQg/dCXspIyiJyyiCY+oh7bJpmP8r/RwgJ1ALFgZwRLAG0vzJl/6s03XWvb2Xzo646JP0cI7LfP0PdAa1c7VxLJ2uK8ct2RZAglX1dGw5+vkTvbSsl8D19nWUiPBO049LYLh1XRAqGR0OSwfxzP5WZTg0wrApWn5/wFR0k5lCrSZ2928F+2gIGcCOM= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR1001MB2158.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(366004)(39860400002)(376002)(346002)(396003)(136003)(451199015)(6506007)(36756003)(6512007)(2906002)(53546011)(6486002)(31696002)(6666004)(38100700002)(8936002)(41300700001)(5660300002)(186003)(2616005)(86362001)(478600001)(83380400001)(44832011)(66556008)(66476007)(31686004)(316002)(8676002)(66946007)(45980500001)(43740500002);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?dzBVUmFOZzJGakxqSVZaell5QWxpckZ3OFR4Ykw1OFJyRmp2ZU1OSno3c3Vo?= =?utf-8?B?Q0dFZ1hZTzd5SmEva3h5WU51TVpLYXRyK2FzdW5KRkhndFp6alp4cGxmUi9v?= =?utf-8?B?ZHRNYWVFU2N6emdzRVY5eFplQksyZjZuNWR3czVsd2JUV0JkRVZ1TzFSNTdt?= =?utf-8?B?WFJ1Q1A0QTJZSGNWSnVaSzZObWQ2SHNMTmFOTXhsZGF6T1N5amw5bXhTWmk2?= =?utf-8?B?K3liZjVKN01Fb25NRkF1d0Zna3B6dDVBOWhsVWZrK3JUM0c3UkRjbStBSDB4?= =?utf-8?B?WWRlQTgzdXR1Ti9oNndaakZ2MVVmcG5tRGFtRkFZOHM4eFpJMUwyakFzNEdL?= =?utf-8?B?MmdHL0R0SUVDMk9TNmduUlNzWHVmdDNJV252M20rOWpyR0hFRWxaLzVRNkpw?= =?utf-8?B?SmlUSlVaQWpZK08yVGhNVVdKRytqWTJad2hHTWZBYVRTNVk4SjIzMTI1SEVL?= =?utf-8?B?aHUwTFJycG55eE5FV0NwTDBvb2h0MjlISHdhNitOT0piMWJOMmRUaXFwNWxB?= =?utf-8?B?aHdwL21mbmc1K1I1YjgrNjlFcjVRZjIzQ1E1L0tqYS9nNVZEWmdRV1JQQTVW?= =?utf-8?B?ak1JK0hyZDlZQTVCdUloZlA2RnlsN1ZRZzE1Zm14ejRiakdqREUyNjBLeFg0?= =?utf-8?B?bFR1bmdueUVwYVBkWDU2Z1h0N3RBWTQ5b3o5UzJvWEVxcW10ZFVETFlvdFpz?= =?utf-8?B?akI3KzdRN2FVUVFzM21RTVZRZTNscU9FWW4vdVVidVFvQXJiakVjMytXNlla?= =?utf-8?B?b1M3ZlNOVng3MFpYQTBxVkxmcGRnTS9LeGFycVhaVm9pcHU3ekJHaG0zSVR6?= =?utf-8?B?SlBPbXRncVJRQXlwUTM3VkV6UXVCUlN2aXNpYXVCS2VkT2ovWG9udFlFU21j?= =?utf-8?B?Wm9vQnBEK29QZDlRd0hGajhYUDQzSktDbVhldTRLdURBbUtYcHhzMFV3Niti?= =?utf-8?B?aEhXaGZncVd2N29aSk5JTzhPL1pZRVRUbzJPNlk5dnZrUG5aT1o1V0paOVNB?= =?utf-8?B?TE5aQmV5VlVtMXVNM29TSUVtSkdhVnRmOWdxT0hXcjdWU1NWcXZaa1VRaGQz?= =?utf-8?B?TThzaU96SVRZQ0dGYXBncHA2SWJ0c2p5THFlcjg4NC9EZjRxWEJBdWdHNkRq?= =?utf-8?B?QW13TUlaTUdrMXBlUEdIcHNvbTBvMGM5VGVWSDgzdTZCdjVYc05XRDFnb3E5?= =?utf-8?B?Q2k3NWk3Y09kTlN4eDZQMWthZ29GSkJuVlBZdktkVEZkdndpZmxUS2V5V2x2?= =?utf-8?B?cVAyaTNnWjQ1ZGdKc1VOcCtNS0tUYUhtcmpnK1ptQS9UemExS0VzcDNKTUhX?= =?utf-8?B?ZmVPRXk3OWNLQks0MEcrRXVWMzY3MGJGeUdneG5HVEdyRTF0OU54R3dxbkgw?= =?utf-8?B?REFsRmtNZlpSVkhEcGNlZ2RNTjgzME1nZVlFYUlUc0gxbXhGN05FOTRaSTR3?= =?utf-8?B?RzM5eW1XRXJPUHFIeFZ2amk0bGtpczlCTm5OS1c5ZmJocGFDZnR3RjcxVHR5?= =?utf-8?B?MmNzVkFQWTBOc1QyUHNLT3B1ZVZwY3R3S3dRbDZidzhueUd3bE5VZHNqSmtE?= =?utf-8?B?N1hDcis0UU9qakhWMTJwbDBFNTRsaUp0YUpHTmc1b0g1TVFzeGZjd1VRNkdL?= =?utf-8?B?eFcwUDZJOEwvN2MwbU1aaVZyOEw1Ulg3bytwR2htb09kVnc5Y2gwSC9Fa290?= =?utf-8?B?cTgxcmQ2MlA3U2xpd3Bkbm5ScGIzMlI5VzVwUEdNUnVuMnpKMjNuM29FTDBR?= =?utf-8?B?QVVqVTdlUGFIVklOUzczdWlLNnlZU0w5WnlxSG1GYmpzYk43WXBCb0lIb1d1?= =?utf-8?B?S3VZZ0JncW1ZeUpJWnhPbXpLZmdUdFlFNmRXSjllOWlrNnhVOTBoYmdVNk5v?= =?utf-8?B?WkhVMGVNemtJaGg2QjlhdFlxc01BeU1PQ25IUnZZcittNlpjOXM5Y05meDNL?= =?utf-8?B?RHlKVWhVUTBkSVlEdmlWZUt6S3ZLVGg5VVJmNENDT0hsQWJ0b0dBUUhoRFlY?= =?utf-8?B?R2NSQ0R1T2JscFBadjdLZVRvemRoc0QzNlI0bi9YeTBWb1F4cmRMRXBJd29U?= =?utf-8?B?amlMZ1YrclhXUy9JNlMxbTFQNW52a3BzdTJFdWFONnZtL3Brd05OZFNXR1k1?= =?utf-8?B?ZzJIQmdPZ3llUHVIRzVIYzRyUFNvZFRPci9Kd0hZNStRbXBha3hmYWNtd3Bn?= =?utf-8?B?ZUE9PQ==?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: b5d497d7-371c-4c25-799d-08daabba28f6 X-MS-Exchange-CrossTenant-AuthSource: MWHPR1001MB2158.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 11 Oct 2022 18:55:27.0385 (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: Nji1BzFQvUnpj2MLvjUzANPaoG7NEjiRV8ViaJawU6A0zrV7sHsZSOGUuUjZChGx6FbdndOsrRYXSI2JbJRkcw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: CH0PR10MB4987 X-Proofpoint-Virus-Version: vendor=baseguard engine=ICAP:2.0.205,Aquarius:18.0.895,Hydra:6.0.545,FMLib:17.11.122.1 definitions=2022-10-11_08,2022-10-11_02,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 mlxlogscore=999 suspectscore=0 adultscore=0 mlxscore=0 bulkscore=0 malwarescore=0 phishscore=0 spamscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2210110110 X-Proofpoint-GUID: Q0HFp-PgLplnhOxw8H9on2nzoyCgG5Jf X-Proofpoint-ORIG-GUID: Q0HFp-PgLplnhOxw8H9on2nzoyCgG5Jf X-Spam-Status: No, score=-13.2 required=5.0 tests=BAYES_00,BODY_8BITS,DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,GIT_PATCH_0,NICE_REPLY_A,RCVD_IN_DNSWL_LOW,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_NONE,TXREP autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on server2.sourceware.org List-Id: Hi Guillermo, On 10/3/22 7:39 AM, Guillermo E. Martinez via Gcc-patches wrote: >>> diff --git a/gcc/ctfc.cc b/gcc/ctfc.cc >>> index 9773358a475..253c36b6a0a 100644 >>> --- a/gcc/ctfc.cc >>> +++ b/gcc/ctfc.cc >>> @@ -604,6 +604,7 @@ ctf_add_enum (ctf_container_ref ctfc, uint32_t >>> flag, const char * name, >>>     gcc_assert (size <= CTF_MAX_SIZE); >>>     dtd->dtd_data.ctti_size = size; >>> +  dtd->flags = CTF_ENUM_F_NONE; >>>     ctfc->ctfc_num_stypes++; >>> @@ -612,7 +613,7 @@ ctf_add_enum (ctf_container_ref ctfc, uint32_t >>> flag, const char * name, >>>   int >>>   ctf_add_enumerator (ctf_container_ref ctfc, ctf_id_t enid, const >>> char * name, >>> -            HOST_WIDE_INT value, dw_die_ref die) >>> +            HOST_WIDE_INT value, uint32_t flags, dw_die_ref die) >>>   { >>>     ctf_dmdef_t * dmd; >>>     uint32_t kind, vlen, root; >>> @@ -630,10 +631,12 @@ ctf_add_enumerator (ctf_container_ref ctfc, >>> ctf_id_t enid, const char * name, >>>     gcc_assert (kind == CTF_K_ENUM && vlen < CTF_MAX_VLEN); >>> -  /* Enum value is of type HOST_WIDE_INT in the compiler, dmd_value >>> is int32_t >>> -     on the other hand.  Check bounds and skip adding this enum >>> value if out of >>> -     bounds.  */ >>> -  if ((value > INT_MAX) || (value < INT_MIN)) >>> +  /* Enum value is of type HOST_WIDE_INT in the compiler, CTF >>> enumerators >>> +     values in ctf_enum_t is limited to int32_t, BTF supports signed >>> and >>> +     unsigned enumerators values of 32 and 64 bits, for both debug >>> formats >>> +     we use ctf_dmdef_t.dmd_value entry of HOST_WIDE_INT type. So check >>> +     CTF bounds and skip adding this enum value if out of bounds.  */ >>> +  if (!btf_debuginfo_p() && ((value > INT_MAX) || (value < INT_MIN))) >>>       { >>>         /* FIXME - Note this TBD_CTF_REPRESENTATION_LIMIT.  */ >>>         return (1); >>> @@ -649,6 +652,7 @@ ctf_add_enumerator (ctf_container_ref ctfc, >>> ctf_id_t enid, const char * name, >>>     dmd->dmd_value = value; >>>     dtd->dtd_data.ctti_info = CTF_TYPE_INFO (kind, root, vlen + 1); >>> +  dtd->flags |= flags; >>>     ctf_dmd_list_append (&dtd->dtd_u.dtu_members, dmd); >>>     if ((name != NULL) && strcmp (name, "")) >>> diff --git a/gcc/ctfc.h b/gcc/ctfc.h >>> index bcf3a43ae1b..a22342b2610 100644 >>> --- a/gcc/ctfc.h >>> +++ b/gcc/ctfc.h >>> @@ -125,6 +125,10 @@ typedef struct GTY (()) ctf_itype >>>   #define CTF_FUNC_VARARG 0x1 >>> +/* Enum specific flags.  */ >>> +#define CTF_ENUM_F_NONE                     (0) >>> +#define CTF_ENUM_F_ENUMERATORS_SIGNED       (1 << 0) >>> + >>>   /* Struct/union/enum member definition for CTF generation.  */ >>>   typedef struct GTY ((chain_next ("%h.dmd_next"))) ctf_dmdef >>> @@ -133,7 +137,7 @@ typedef struct GTY ((chain_next ("%h.dmd_next"))) >>> ctf_dmdef >>>     ctf_id_t dmd_type;        /* Type of this member (for sou).  */ >>>     uint32_t dmd_name_offset;    /* Offset of the name in str table.  */ >>>     uint64_t dmd_offset;        /* Offset of this member in bits (for >>> sou).  */ >>> -  int dmd_value;        /* Value of this member (for enum).  */ >>> +  HOST_WIDE_INT dmd_value;    /* Value of this member (for enum).  */ >>>     struct ctf_dmdef * dmd_next;    /* A list node.  */ >>>   } ctf_dmdef_t; >> >> I am wondering if you considered adding a member here instead - >> something like- >> >> bool dmd_value_signed; /* Signedness for the enumerator.  */. >> >> See comment below. >> >>> @@ -162,6 +166,7 @@ struct GTY ((for_user)) ctf_dtdef >>>     bool from_global_func; /* Whether this type was added from a global >>>                   function.  */ >>>     uint32_t linkage;           /* Used in function types.  0=local, >>> 1=global.  */ >>> +  uint32_t flags;             /* Flags to describe specific type's >>> properties.  */ >>>     union GTY ((desc ("ctf_dtu_d_union_selector (&%1)"))) >>>     { >>>       /* struct, union, or enum.  */ >> >> Instead of carrying this information in ctf_dtdef which is the data >> structure for each type in CTF, how about adding a new member in >> struct ctf_dmdef? The "flags" member is meant for only enum types, and >> hence it will be more appropriate to add to ctf_dmdef as say, >> dmd_value_signed. >> > > Yes, `ctf_dtdef' is structure for each type in CTF (including enumeration), > and `ctf_dmdef' keeps information for enumerator, not for the > enumeration type. Yes, please scrap my earlier suggestion of adding to ctf_dmdef_t. What do you think about adding something like 'dtd_enum_signedness' to ctf_dtdef, instead of uint32_t 'flags'; with two possible values of 0 (unsigned) and 1 (signed). I believe your intention of using the latter is to conserve some memory in the long run (by reusing the flags field for other types in future if need be)? I do, however, prefer an explicit member like dtd_enum_signedness at this time. My reasoning for keeping it explicit is that it helps code be more readable/maintainable. Thanks for your patience, Indu