From patchwork Thu Mar 28 22:47:22 2024 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Guillaume Gomez X-Patchwork-Id: 87788 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 0B2073858286 for ; Thu, 28 Mar 2024 22:48:18 +0000 (GMT) X-Original-To: gcc-patches@gcc.gnu.org Delivered-To: gcc-patches@gcc.gnu.org Received: from mail-wr1-x433.google.com (mail-wr1-x433.google.com [IPv6:2a00:1450:4864:20::433]) by sourceware.org (Postfix) with ESMTPS id 794DD3858D32; Thu, 28 Mar 2024 22:47:35 +0000 (GMT) DMARC-Filter: OpenDMARC Filter v1.4.2 sourceware.org 794DD3858D32 Authentication-Results: sourceware.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: sourceware.org; spf=pass smtp.mailfrom=gmail.com ARC-Filter: OpenARC Filter v1.0.0 sourceware.org 794DD3858D32 Authentication-Results: server2.sourceware.org; arc=none smtp.remote-ip=2a00:1450:4864:20::433 ARC-Seal: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711666059; cv=none; b=hfaMw6dv5nROIDmH1vIO6O5hVNfXSKRU0TaJiGU/A3353FtPWwcv48NN+bs2u8mFg7vp/yV8jKnOz8Nn3PAc7ZegCKgugeodHVsDPxTZBsLswRivM87K+gafK4MA5pPkNg9rfK3URHjw/pdu1Fe0Qi7+DuFhh+lbh4uTaBSIrs8= ARC-Message-Signature: i=1; a=rsa-sha256; d=sourceware.org; s=key; t=1711666059; c=relaxed/simple; bh=Z2zkiJuHvcZuM1gFV3rlzIBfyXSssmCGoAESZapfSAg=; h=DKIM-Signature:MIME-Version:From:Date:Message-ID:Subject:To; b=BJDWXL1p5rGeFnicwrktVakaTtlBpm/nr3rfXV/GfEc/wab5iibmf+O0dX1gQQlG0kOGBe+CRhhF2w9SjtmM1XzrbJm2ij03O0PbzFZsDys+rwlMgBkMPO/xdeLb4Gi6fD3HITNWmKc619JbyN+X/mzee+rJgGbzEjHpx9/Ruts= ARC-Authentication-Results: i=1; server2.sourceware.org Received: by mail-wr1-x433.google.com with SMTP id ffacd0b85a97d-33ecb04e018so1014227f8f.1; Thu, 28 Mar 2024 15:47:35 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1711666054; x=1712270854; darn=gcc.gnu.org; h=to:subject:message-id:date:from:mime-version:from:to:cc:subject :date:message-id:reply-to; bh=tDJsugDElI+87JHL6ZuzEMqLC9IWnVAAGjwSk0oqXZ0=; b=O7/HqEtAnah3xd5uJS/HCebLShdOxtDVeSwOqs55ZMjioS3aXr4OIx5WRdOkg2tEQi kZSXOiLbHbz3phrNag8pV7zzxiV27KhHfbzYKJA/pr+frxQ2y9L+06PQNpYBGrr9YiIa x6WpqL5/T8d33t7T6ByFcJPrMu2g7Dm0BkuTbUZ/828cf3v7esFSnckGrPTCVMouM9AB NWZ7VNsiSIhcy0+7cIomAgqTiIPg61VA217K+lvotJHbXvBK0BYyi46jOdB10lSASaZH VVX0sMK6RSu5n+AFFO5oRigvMqD8gVGSjkCDsmp8ofkheNDxbpp3E/iScYww+gjfSDev MU6Q== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1711666054; x=1712270854; h=to:subject:message-id:date:from:mime-version:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=tDJsugDElI+87JHL6ZuzEMqLC9IWnVAAGjwSk0oqXZ0=; b=KQbcROHq5XCkZGleAA3GSi2TliJYeoXst2ZBGN6LRdsNjcYTtOhrx4eXAljxbMNrL+ Fp7nttwIiD+8hH9/L+x/o1rVqAHwbFKk2EXyUjIGzFWOwmFF4ah7VVo2/fjojNVvDsWG EVV7pgzEGDUKp+6wWmfB5j6hR+epUiSmFubt5opTvXZIIT43+UN1pFtGM0xj74840aBc 5by7LjQrdedOd9Y/FPyga5xcqFA3QqleO8MnjtRGYyhOP/DzOFjDx07oZNYfuaddZCcL vwWDg62+axZX6R1DY54Nb+TijZu47McBJFfaE/lPakO3g+mEgBcWQLOBIdM1grh6dM/3 WhGA== X-Forwarded-Encrypted: i=1; AJvYcCVhf3ngeZYl+HR9jf9lWQGLIoXCcWszGrDnCqSj7UWUe1KUmlYHSnkAOfGa0ExHSNdJ7/zVjjqjfobwl8dnK5Y= X-Gm-Message-State: AOJu0Ywr5Ysd5eNlz2Hy2VLo+w5dPCvF465k34od2brY4K8fkCj7MH2x hGyjsx9Irode4hfa03ZaKj6snUHyollr4Z2ytRNbrI5n9PRZ1Jaes2ErlHf+CP/RODLcQUfxFFa iJ0fRuU5mS20f8u6ikoe8mesvRWKNRtDefWg39w== X-Google-Smtp-Source: AGHT+IGJQrV1GlGmpMjI96TiZyXvlifGa17ZtRfk5x4nTCiYJYD/JSvOQFrNxNceqPTWrEf+hIrfp1gomlTE6LAV8gs= X-Received: by 2002:a5d:69cd:0:b0:33e:cf4e:86ba with SMTP id s13-20020a5d69cd000000b0033ecf4e86bamr209748wrw.63.1711666053746; Thu, 28 Mar 2024 15:47:33 -0700 (PDT) MIME-Version: 1.0 From: Guillaume Gomez Date: Thu, 28 Mar 2024 23:47:22 +0100 Message-ID: Subject: [PATCH] Allow `gcc_jit_type_get_size` to work with pointers To: gcc-patches@gcc.gnu.org, jit@gcc.gnu.org, David Malcolm , Antoni X-Spam-Status: No, score=-8.6 required=5.0 tests=BAYES_00, DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, DKIM_VALID_EF, FREEMAIL_FROM, GIT_PATCH_0, RCVD_IN_DNSWL_NONE, SPF_HELO_NONE, SPF_PASS, 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 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 Hi, Here's a little fix to allow the `gcc_jit_type_get_size` function to work on pointer types as well. Cordially. From 21e6e2d5ea897fc74d0e3194973093c58157e6fa Mon Sep 17 00:00:00 2001 From: Guillaume Gomez Date: Tue, 26 Mar 2024 17:56:36 +0100 Subject: [PATCH] [PATH] Allow `gcc_jit_type_get_size` to work with pointers gcc/jit/ChangeLog: * libgccjit.cc (gcc_jit_type_get_size): Add pointer support --- gcc/jit/libgccjit.cc | 4 ++-- gcc/testsuite/jit.dg/test-pointer_size.c | 27 ++++++++++++++++++++++++ 2 files changed, 29 insertions(+), 2 deletions(-) create mode 100644 gcc/testsuite/jit.dg/test-pointer_size.c diff --git a/gcc/jit/libgccjit.cc b/gcc/jit/libgccjit.cc index a2cdc01a3a4..58d47723e38 100644 --- a/gcc/jit/libgccjit.cc +++ b/gcc/jit/libgccjit.cc @@ -575,8 +575,8 @@ gcc_jit_type_get_size (gcc_jit_type *type) { RETURN_VAL_IF_FAIL (type, -1, NULL, NULL, "NULL type"); RETURN_VAL_IF_FAIL - (type->is_int () || type->is_float (), -1, NULL, NULL, - "only getting the size of integer or floating-point types is supported for now"); + (type->is_int () || type->is_float () || type->is_pointer (), -1, NULL, NULL, + "only getting the size of integer or floating-point or pointer types is supported for now"); return type->get_size (); } diff --git a/gcc/testsuite/jit.dg/test-pointer_size.c b/gcc/testsuite/jit.dg/test-pointer_size.c new file mode 100644 index 00000000000..337796acc2a --- /dev/null +++ b/gcc/testsuite/jit.dg/test-pointer_size.c @@ -0,0 +1,27 @@ +/* { dg-do compile { target x86_64-*-* } } */ + +#include +#include "libgccjit.h" + +#include "harness.h" + +void +create_code (gcc_jit_context *ctxt, void *user_data) +{} + +void +verify_code (gcc_jit_context *ctxt, gcc_jit_result *result) +{ + gcc_jit_type *int_type = + gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_INT); + gcc_jit_type *int_ptr_type = gcc_jit_type_get_pointer (int_type); + + int int_ptr_size = gcc_jit_type_get_size (int_ptr_type); + CHECK_VALUE (int_ptr_size, 8); + + gcc_jit_type *void_type = + gcc_jit_context_get_type (ctxt, GCC_JIT_TYPE_VOID); + gcc_jit_type *void_ptr_type = gcc_jit_type_get_pointer (void_type); + + CHECK_VALUE (int_ptr_size, gcc_jit_type_get_size (void_ptr_type)); +} -- 2.24.1.2762.gfe2e4819b8