diff options
| author | Michael Biebl <biebl@debian.org> | 2020-12-06 21:58:58 +0100 |
|---|---|---|
| committer | Michael Biebl <biebl@debian.org> | 2020-12-06 21:58:58 +0100 |
| commit | ec4fca2f78286742ae7f8313c2ee2124c1467b0c (patch) | |
| tree | b0c65baa44cb6f1146905601e26bec0385309c65 /shared/c-rbtree/src | |
| parent | 9c050d4b4b3b85760abead778d68a63b1fde0a02 (diff) | |
| parent | 65f86e8f56267192d42f2b629fc6b0c99fb9cd0c (diff) | |
Update upstream source from tag 'upstream/1.28.0'
Update to upstream version '1.28.0' with Debian dir 1448deb268c4818d41653eb95896b4228b7c3f72
Diffstat (limited to 'shared/c-rbtree/src')
| -rw-r--r-- | shared/c-rbtree/src/c-rbtree.h | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/shared/c-rbtree/src/c-rbtree.h b/shared/c-rbtree/src/c-rbtree.h index a9bbce52..d4d0fe45 100644 --- a/shared/c-rbtree/src/c-rbtree.h +++ b/shared/c-rbtree/src/c-rbtree.h @@ -27,6 +27,7 @@ extern "C" { #endif #include <assert.h> +#include <stdalign.h> #include <stddef.h> typedef struct CRBNode CRBNode; @@ -58,7 +59,11 @@ typedef struct CRBTree CRBTree; * C_RBNODE_INIT. */ struct CRBNode { - unsigned long __parent_and_flags; + union { + unsigned long __parent_and_flags; + /* enforce >=4-byte alignment for @__parent_and_flags */ + alignas(4) unsigned char __align_dummy; + }; CRBNode *left; CRBNode *right; }; @@ -88,7 +93,11 @@ void c_rbnode_unlink_stale(CRBNode *n); * To initialize an RB-Tree, set it to NULL / all zero. */ struct CRBTree { - CRBNode *root; + union { + CRBNode *root; + /* enforce >=4-byte alignment for @root */ + alignas(4) unsigned char __align_dummy; + }; }; #define C_RBTREE_INIT {} |