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 07CD43858C2F for ; Sat, 15 Oct 2022 03:45:09 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.1 sourceware.org 07CD43858C2F 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 (m0246629.ppops.net [127.0.0.1]) by mx0b-00069f02.pphosted.com (8.17.1.5/8.17.1.5) with ESMTP id 29F3T19m010409 for ; Sat, 15 Oct 2022 03:45:08 GMT DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=oracle.com; h=message-id : date : subject : to : references : from : in-reply-to : content-type : content-transfer-encoding : mime-version; s=corp-2022-7-12; bh=aSJPy3+pxBW1b/DODkp/jSMDCQ3AzpmK/jxAFkXpcWo=; b=VjeQLdrtvdU2ARAm6rGDYXm0AbGIwQREnwEC2xaI9/b4X8KEhrVhNuvgVLA4b2iqi61x +5tiUmKl2BAOEcF7TsE2om/E50a/1sHEWNeFzdySXK/6BLlTX7Xeeu7/ZX0N77NPLJru EaFSoOLByZgQijGV53Opk6ZiVk0R5ig45Qz+4q+44zbOQCRgMYMC1xwdjnBKf120hrI/ x7VL4or/W5qbZvzcvrQyik8UO9yA22+HQWBrzU0gNIeDLRQS30rCDFKEB+zQnQgegsu3 OBrGyZEZW4XIOrjadR7BpJVE34vjGYYYn7SJQ0zeS9DKe5NKROmD0iX/8R/E1O5NxECx 4w== Received: from phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (phxpaimrmta02.appoci.oracle.com [147.154.114.232]) by mx0b-00069f02.pphosted.com (PPS) with ESMTPS id 3k7n0500a6-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Sat, 15 Oct 2022 03:45:07 +0000 Received: from pps.filterd (phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com [127.0.0.1]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (8.17.1.5/8.17.1.5) with ESMTP id 29F3DFSs009118 for ; Sat, 15 Oct 2022 03:45:07 GMT Received: from nam12-mw2-obe.outbound.protection.outlook.com (mail-mw2nam12lp2040.outbound.protection.outlook.com [104.47.66.40]) by phxpaimrmta02.imrmtpd1.prodappphxaev1.oraclevcn.com (PPS) with ESMTPS id 3k7ka1hdta-1 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=OK) for ; Sat, 15 Oct 2022 03:45:07 +0000 ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=Dxsq2wrcu5VRYJlMeU24xJdO1hjsDY9s1ayjd7/SA8uyDwkkEl1ByDnD0dwg5KKs4t0PHfFGfTZTmq0toev4dI/nklRIkxgiexjgDTuh9jMTOUps+0ks4gOjqLY3SU7qMWOEta9pKmhs0XwVHMucA9dV9meGNT4NKdSA7HyN6x6tB/DjqXeiztwCAsvGupQYMVQjkHtueUED/xsv1NmgsZ7sRuH9KKRZunxr7EGxwpnRkjCVLimJVgcMHQosdOdnJVfrcz3/ZdK5tJYMzmajI82Bt740/d+mMP8xaz36uOjYYOmHgtht4J48t0ft6898QH91W3AbERYYPiouWXJHQg== 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=aSJPy3+pxBW1b/DODkp/jSMDCQ3AzpmK/jxAFkXpcWo=; b=QCejbme4qp1Zd0rC4JlGqtWI9DaMET71ys3jqPjLtw3l3yohRWV2WORabX+CeRgsqm7voMu7ySrZxdeeSN2+kFhcgsecvRf8iPcyVjUoIeRDWUfL+iB3gM0KL1A1hU2PkfL8jHm7KV7UU66inbbBLChJgA4E3cZaSjCEXbqoFu9wKz0MRcxwzKU2pR6wWDuTRCs9wP8XwWWtFp0Z3L1+yFtxwqudTNeHXkzIUTnoqTxLJgpWVSgO0+ATa26Y/yo2yUMnjy/cAU2HMm2sJ3j/9FBKzf6o29HCrjBPHW0HyeatU+ItHvH9UDuyDbKwsewGP/jTdAV3dgAzUpsOKN6stw== 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=aSJPy3+pxBW1b/DODkp/jSMDCQ3AzpmK/jxAFkXpcWo=; b=rOMK0xGQfWJhr5+8ZiFVXW1ZzXRiBf5RzUkCUDTj58e7GtTcsHeUtOGCS7YkEiK45Eo7iTJfLGQ85+ExBi4R3lu1vNfWvvDm+J6JuKn4Pyacmdegc1zWcgpuPTNw7vLrHp9pJu76GSa4XBdUSlU125COvKc8lX5YJeLO9A/UAXI= Received: from MWHPR10MB1407.namprd10.prod.outlook.com (2603:10b6:300:23::20) by BY5PR10MB4228.namprd10.prod.outlook.com (2603:10b6:a03:200::17) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.5723.30; Sat, 15 Oct 2022 03:45:05 +0000 Received: from MWHPR10MB1407.namprd10.prod.outlook.com ([fe80::d05e:773d:2a05:eaed]) by MWHPR10MB1407.namprd10.prod.outlook.com ([fe80::d05e:773d:2a05:eaed%2]) with mapi id 15.20.5723.029; Sat, 15 Oct 2022 03:45:05 +0000 Message-ID: Date: Fri, 14 Oct 2022 22:45:02 -0500 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:102.0) Gecko/20100101 Thunderbird/102.3.1 Subject: Re: [PATCH v2] btf: Add support to BTF_KIND_ENUM64 type Content-Language: en-US To: Indu Bhagat , 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: "Guillermo E. Martinez" Organization: Oracle Corporation In-Reply-To: Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-ClientProxiedBy: SA0PR11CA0124.namprd11.prod.outlook.com (2603:10b6:806:131::9) To MWHPR10MB1407.namprd10.prod.outlook.com (2603:10b6:300:23::20) MIME-Version: 1.0 X-MS-PublicTrafficType: Email X-MS-TrafficTypeDiagnostic: MWHPR10MB1407:EE_|BY5PR10MB4228:EE_ X-MS-Office365-Filtering-Correlation-Id: ce4287e9-3f65-4d54-11dd-08daae5fa568 X-MS-Exchange-SenderADCheck: 1 X-MS-Exchange-AntiSpam-Relay: 0 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: XE7qfYsIPjxJWg6wFf/BD4WNNdBIDY4CW1zkTCtf9glHkJoAtLpPf9c1qLqN8oCPes2AR3tlPUvAOi06tRZSLUkEN2l9KYmFPiG+bMTmSm9RV2XMOm0rO3jU2PoLM1xKh0LYpJq3JInsVuYN1oY5Wzrejfwx/la1+kOJp59Y2doYiJ1qBheXSyEp8A23PN2GcmklhKAQhzoMkWafNiPRNyU/+labM3ILH5EReLLit0aEYCtW4v3RJ1DfqxVfd0xo/JsMdMVhJ3SigGSauPoxdLL8eOGCN4Y9RoZc6N0OVEd3uoSImFcHPVQ32bVkZ8vMkXtEJ3lrODTc1pD2S0Zhg3tSTxF5RfRnvNG5B7PNbknRKw00YEbizVI8kVPxbhBZ23rgfZR4HA11YOdJu2HcuQEWIFMqnv4uzDX1lGFz1zmfu3wyk90KXPM+iMCUDoqTozN519Bdd2s5/yAKl5nroTeIoSYDXjcsaigM5PoL5IASxMaf1/d/N2pCTrpuNdbQzGbxmWX4Vg+lbFF1jyzFNJh9koagcHeMBoWKdCYlrgjx4eXBEYFbtdpqJAw+uMk2HuOVIHeQvu88vRIfI7zpSzKA+/0PAy/UYyZOKjbehDNHa7L2t/qQEvH/GjS7P3OwwLD3EEYLcaER5kkx2NHQbltDu4Z/HyFaPzKYSI2kLmPiSDECBm6eymM/zHmqrG89zNMTOvn1aV1WN+icAqZGSuXj7GJ1FR95wAp9kvPGHwWHuG8fQJ2bQNufDUn/4FzxrI2dPdCXlv6dz8iRU0UqEtWlGzlmPeUQxiW8+jCTQJI= X-Forefront-Antispam-Report: CIP:255.255.255.255;CTRY:;LANG:en;SCL:1;SRV:;IPV:NLI;SFV:NSPM;H:MWHPR10MB1407.namprd10.prod.outlook.com;PTR:;CAT:NONE;SFS:(13230022)(39860400002)(366004)(396003)(376002)(136003)(346002)(451199015)(5660300002)(8936002)(6512007)(186003)(2906002)(36916002)(2616005)(86362001)(6506007)(41300700001)(478600001)(36756003)(31696002)(53546011)(6486002)(38100700002)(31686004)(83380400001)(66556008)(8676002)(66946007)(6666004)(66476007)(316002)(43740500002)(45980500001);DIR:OUT;SFP:1101; X-MS-Exchange-AntiSpam-MessageData-ChunkCount: 1 X-MS-Exchange-AntiSpam-MessageData-0: =?utf-8?B?cllDeHFyeExCN0pIZTZzNmJsaFNWamJjc25tRDFiODVIRTNUNlQ2Rnh5M2xF?= =?utf-8?B?ZWZrdHJZb2ZOeVRqdGlEVEx5OXQrajBtb051TUZPQ2k4T0Y2cElCSytvdlU0?= =?utf-8?B?dmlsMGE4b2VtMDJVb1dkT1NuL3ROaFM5NWUwQlVEVVBnczZ2NW1xcWc1YVNx?= =?utf-8?B?aXlMdEFDK3IybW0vaTFkKzM3VjFCQ1QxSTNIbEo1NUI5ek43N0Fyd1YrK1BW?= =?utf-8?B?TGRoRjJjd1N5ZkVnQ2phQlQwdXRXS3kxSEVMdTRyTVFhYUJSN3ZpWnlvQUo0?= =?utf-8?B?cnZNdmE0Wi9VMnBWQUdzOVpORFJUY20xZE1wNFdyY2R0YTUrOU5ydlErTWJ3?= =?utf-8?B?TVA2VmcxVnhKME1GRlZrR1RncVpVR2grd3N5WUY5dUw2Q1RENkplbVIxa0ND?= =?utf-8?B?NVhUcEhxUG0zYkRZRnNBcUFzSXZmbXhQa2FqK2ZvWi85d0dEaUxLWVM3eEpz?= =?utf-8?B?R1FYVFl3M0w5VzBEcVRZZkRvL2RMc2NIczRENDVjWkFJc0JtVFRNTjdsQlps?= =?utf-8?B?ZEQ0WWIvR0d5VVFBbVplclczeFFob3pxb1ZGUzNXazRYWEJwd2NodDRLVTBC?= =?utf-8?B?bDBoWDdTd0FtWXVNM2QrdUlxQThIOXVSRzNOQ0IwR2RWREt5aEdIekZPdUw1?= =?utf-8?B?RlpkdUhGL1NsTUU1bHJib0h1U1kxajlaNDZLU0UvdnFpeFlMZkZEdGRqdUZL?= =?utf-8?B?ZlZ6aWs3dGY2L3RSVVhNTlhQVWxadWRRSWYwZEg4czM4V0IxOUkxU05LNHE4?= =?utf-8?B?cmRReXdZV3RpbUpaZ25iZldORTJDeHhPNkdQYUtlSWhxQ2hFbHdqa3pQZy9w?= =?utf-8?B?STF0enk5T1Q5MmtjOGpQM1FnekhkMWlqZ09iNmJYc0dlMWdkS2E1UmZybmlD?= =?utf-8?B?SHVwc0NOOHdyOUttcEErSjQ0M2t3VERoR0NXMk1sbU1nYjVJSFpTdENPTVNa?= =?utf-8?B?QUdzUEVFMUFRcnJDUHMwenRndXVISUhRY2RXRTQ2VW1PbmVmQ1ZSNzRKVC8w?= =?utf-8?B?dXpmdldIQTFKNU82Qm5DRFdFWXZXaXpQL21BME9KcUpMQTVNeGxMS213ajhi?= =?utf-8?B?dEhPRnlMMXZ4V05TeTNodHg5cVh3NmVhVFhNbk1ZZGhrVEp6djFjUjZqdDZC?= =?utf-8?B?ckhrdmdGZVZlVWRPYUNnam4zNG1OUitVd29CbCtLTzM2Y2JuL0xLVXAvKzRj?= =?utf-8?B?TmE2U2MyQWZ6WXo0L2VuSU9PVi9rak9JOGxjc1ptN1hvUWhWNmNqQmU4TWFu?= =?utf-8?B?Ync5QWtlVHVVTWwyN2g4RXE5QzZ1MjB5c1A5RVNFNndKYjA0a0c4ZEtPV2ZQ?= =?utf-8?B?VDR4bG4vRC90K2F4dG1OQTcxZUZkcGhYcnZvaUZsTE81R3VDRWozUjlvdkVS?= =?utf-8?B?dXpxcjlaNTZuRjBacXVBNFFWWEJvVnE2V1I3ZmRudC9YR2ZyNUh0WHBteEpv?= =?utf-8?B?MG5HS2l4SXFkM1NIcnFPQjk5ajN3SkRYMzNKQjJsYXB5VGxid1BGNS9tVHBR?= =?utf-8?B?a2VkY3B3aGJuWkNyNmYvL2prOUdXWkJKQ1ozbjFXV2JvNEdtdURFaG1EL1lj?= =?utf-8?B?dHlqbzZRUHlWUjFKZytUeEhNdVkwQnBxbS9tZ0VOd1drcHVwT29sUzBIUjND?= =?utf-8?B?dEY4OG1XS01ZaDQ5UmdjYjRZYUU4UnFsdC9td0NtanFaZm5XZDJaNFdrcTVa?= =?utf-8?B?VURBTnVIWHNrLzFBemdQWG5McEZZOWlVc3NZaUhtUTZScHdRa3pzYXorTmM1?= =?utf-8?B?eDR0V1ZRaVphTWE4ODhMYTdScFZJSkNVUVBwLzNIVjJ1WmNBekE3TWVZZUZp?= =?utf-8?B?VWtIamJCTWNwZThwU3EyZHUralhhSEFydGpYWENrRGlhc2JLeDcrUmc4U3Er?= =?utf-8?B?dDAxUFVINHVSc3ljVXptUmpDMUdoSW0yQ3ZqM1VkeTBlZ1B5RmJtS2h2Yi9F?= =?utf-8?B?Q2lZLzJseld4eHF1UUF0aG93d0lrYWVBK1NIdlE0cVNRSUZHS2VBTGJETnY2?= =?utf-8?B?R1l1VGwxWEV5TlBEYmJVSXgrNFgwS3p4a2xhUTV0N2FQajRzTFM5SGljVzIw?= =?utf-8?B?S202Sm9kYWkySDVuRUV5Mk1LT2dZbXRTZmplOVJ4QzB3cFdTUUovOVpkdnZU?= =?utf-8?B?WEZnNWVDUWdYNnNvKzNLbXIzTFFaOGVjdks0c3FhRGdLTFFDZUJQT1pUZXhE?= =?utf-8?B?UnNoR1NLQ0dGUVFwNnNDZytOTXFhVjZEUDRHNG5uQk9CVytKZzc4K004NkFM?= =?utf-8?Q?M7C6rpY9Z1c1OUwGHVLeyCzy2aICj7MvOxuca2ERSc=3D?= X-OriginatorOrg: oracle.com X-MS-Exchange-CrossTenant-Network-Message-Id: ce4287e9-3f65-4d54-11dd-08daae5fa568 X-MS-Exchange-CrossTenant-AuthSource: MWHPR10MB1407.namprd10.prod.outlook.com X-MS-Exchange-CrossTenant-AuthAs: Internal X-MS-Exchange-CrossTenant-OriginalArrivalTime: 15 Oct 2022 03:45:05.0439 (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: 05/aRv7S5r83beRnYNfXX6twaIKJDI5d2f2pzfJSr1emDwvor6ZiDPNSunc3dX4A/8Td1+o7UVi4J/F83yXJqGVDX5Q5pcr+4EuXfUO40BU= X-MS-Exchange-Transport-CrossTenantHeadersStamped: BY5PR10MB4228 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-15_01,2022-10-14_01,2022-06-22_01 X-Proofpoint-Spam-Details: rule=notspam policy=default score=0 suspectscore=0 bulkscore=0 mlxscore=0 spamscore=0 adultscore=0 malwarescore=0 mlxlogscore=999 phishscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.12.0-2209130000 definitions=main-2210150020 X-Proofpoint-ORIG-GUID: cO2ucLeSNJLkDqwgec8N7gcnoL-ok4h2 X-Proofpoint-GUID: cO2ucLeSNJLkDqwgec8N7gcnoL-ok4h2 X-Spam-Status: No, score=-12.4 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: On 10/11/22 13:55, Indu Bhagat wrote: > Hi Guillermo, > Hi Indu, > 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). > OK. I'll use a bool variable field named `dtd_enum_unsiged' like to ENUMERAL_TYPE does storing signedness in `.base.u.bits.unsigned_flag', later this information is used to set the DW_AT_encoding attribute to DW_ATE_{unsigned,signed}, finally with this information we can set the dtd_enum_unsiged variable in `gen_ctf_enumeration_type', so no need to iterate over enumerators constant to figure out signedness of the enumeration type. But, please let me know your thoughts in patchv3. > 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. > Sure, I will do so. > Thanks for your patience, No, thanks to you for your comments! > Indu guillermo