]> 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 11:08:13 +0000 (13:08 +0200)
* m4/gnulib-common.m4 (gl_COMMON_BODY): Expand _GL_ATTRIBUTE_PACKED to
empty on SunPRO C.

ChangeLog
m4/gnulib-common.m4

index be46eefc672c302ab8c0c0f8ceb005b7ac8fe94c..86b75a14de5a0eeef110ff72231c24c202f5ebf9 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>
 
        pthread-h: Fix override of pthread_spinlock_t with non-GNU compilers.
index 73e765c6a769b5ac3153d7a02cbe62793865d5d7..e51149bf9fe9e478df274982b239b93cf41728b1 100644 (file)
@@ -1,4 +1,4 @@
-# gnulib-common.m4 serial 88.2
+# gnulib-common.m4 serial 88.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,
@@ -500,8 +500,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