]> Savannah Git Hosting - gnulib.git/commitdiff
attribute: Work around compiler bug of Oracle cc 12.6.
authorBruno Haible <bruno@clisp.org>
Fri, 29 Mar 2024 13:35:01 +0000 (14:35 +0100)
committerBruno Haible <bruno@clisp.org>
Mon, 8 Apr 2024 10:24:41 +0000 (12:24 +0200)
* m4/gnulib-common.m4 (gl_COMMON_BODY): Expand _GL_ATTRIBUTE_PACKED to
empty on SunPRO C.

ChangeLog
m4/gnulib-common.m4

index e3db00a92622a1f842eb85ab27ed2527ace81d94..e18c9ba506f7a97f69c8a6f26a8fd989f974af11 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,9 @@
+2024-03-29  Bruno Haible  <bruno@clisp.org>
+
+       attribute: Work around compiler bug of Oracle cc 12.6.
+       * m4/gnulib-common.m4 (gl_COMMON_BODY): Expand _GL_ATTRIBUTE_PACKED to
+       empty on SunPRO C.
+
 2024-03-28  Bruno Haible  <bruno@clisp.org>
 
        fenv-exceptions-state-c99: Fix test failures with Oracle cc 12.6.
index bba6d6001f619c8e3edd2d8d0959bf627e77c228..c9a8a7d7a6a049613a6f103e36833b779a299896 100644 (file)
@@ -1,4 +1,4 @@
-# gnulib-common.m4 serial 89.2
+# gnulib-common.m4 serial 89.3
 dnl Copyright (C) 2007-2024 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -504,8 +504,10 @@ AC_DEFUN([gl_COMMON_BODY], [
    minimizing the memory required.  */
 /* Applies to: struct members, struct, union,
    in C++ also: class.  */
+/* Oracle Studio 12.6 miscompiles code with __attribute__ ((__packed__)) despite
+   __has_attribute OK.  */
 #ifndef _GL_ATTRIBUTE_PACKED
-# if _GL_HAS_ATTRIBUTE (packed)
+# if _GL_HAS_ATTRIBUTE (packed) && !defined __SUNPRO_C
 #  define _GL_ATTRIBUTE_PACKED __attribute__ ((__packed__))
 # else
 #  define _GL_ATTRIBUTE_PACKED