From: Rainer Orth Date: Thu, 21 Nov 2024 12:41:19 +0000 (+0100) Subject: Use decl size in Solaris ASM_DECLARE_OBJECT_NAME [PR102296] X-Git-Tag: basepoints/gcc-16~3989 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=116b1c5489d12313f015c9ffd46b9394d559709d;p=thirdparty%2Fgcc.git Use decl size in Solaris ASM_DECLARE_OBJECT_NAME [PR102296] Solaris has modified versions of ASM_DECLARE_OBJECT_NAME on both i386 and sparc. When commit ce597aedd79e646c4a5517505088d380239cbfa5 Author: Ilya Enkovich Date: Thu Aug 7 08:04:55 2014 +0000 elfos.h (ASM_DECLARE_OBJECT_NAME): Use decl size instead of type size. was applied, those were missed. At the same time, the testcase was restricted to Linux though there's nothing Linux-specific in there, so the error remained undetected. This patch fixes the definitions to match elfos.h and enables the test on Solaris, too. Bootstrapped without regressions on i386-pc-solaris2.11 and sparc-sun-solaris2.11. 2024-11-19 Rainer Orth gcc/testsuite: PR target/102296 * gcc.target/i386/struct-size.c: Enable on *-*-solaris*. gcc: PR target/102296 * config/i386/sol2.h (ASM_DECLARE_OBJECT_NAME): Use decl size instead of type size. * config/sparc/sol2.h (ASM_DECLARE_OBJECT_NAME): Likewise. --- diff --git a/gcc/config/i386/sol2.h b/gcc/config/i386/sol2.h index f51fb2ef2f88..06d7ef05d450 100644 --- a/gcc/config/i386/sol2.h +++ b/gcc/config/i386/sol2.h @@ -179,7 +179,7 @@ along with GCC; see the file COPYING3. If not see && (DECL) && DECL_SIZE (DECL)) \ { \ size_directive_output = 1; \ - size = int_size_in_bytes (TREE_TYPE (DECL)); \ + size = tree_to_uhwi (DECL_SIZE_UNIT (DECL)); \ ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, size); \ } \ \ diff --git a/gcc/config/sparc/sol2.h b/gcc/config/sparc/sol2.h index f0181d5914c8..f13235e786e5 100644 --- a/gcc/config/sparc/sol2.h +++ b/gcc/config/sparc/sol2.h @@ -377,7 +377,7 @@ extern const char *host_detect_local_cpu (int argc, const char **argv); && (DECL) && DECL_SIZE (DECL)) \ { \ size_directive_output = 1; \ - size = int_size_in_bytes (TREE_TYPE (DECL)); \ + size = tree_to_uhwi (DECL_SIZE_UNIT (DECL)); \ ASM_OUTPUT_SIZE_DIRECTIVE (FILE, NAME, size); \ } \ \ diff --git a/gcc/testsuite/gcc.target/i386/struct-size.c b/gcc/testsuite/gcc.target/i386/struct-size.c index d82d730afad4..486aa40bff54 100644 --- a/gcc/testsuite/gcc.target/i386/struct-size.c +++ b/gcc/testsuite/gcc.target/i386/struct-size.c @@ -1,4 +1,4 @@ -/* { dg-do compile { target *-*-linux* } } */ +/* { dg-do compile { target *-*-linux* *-*-solaris* } } */ /* { dg-options "-Wno-pedantic" } */ struct S {