summaryrefslogtreecommitdiff
path: root/src/util/ralloc.c
diff options
context:
space:
mode:
authorRhys Perry <pendingchaos02@gmail.com>2023-06-07 12:13:22 +0100
committerMarge Bot <emma+marge@anholt.net>2023-06-08 18:15:13 +0000
commit7a4a2428c0e63af138a54a1a2b45be4e70906926 (patch)
treeccc42457d65c127575a832ab736b7a682797ab5e /src/util/ralloc.c
parent928f31a24a83524ea696a52690e4479804c2381e (diff)
downloadmesa-7a4a2428c0e63af138a54a1a2b45be4e70906926.tar.gz
mesa-7a4a2428c0e63af138a54a1a2b45be4e70906926.tar.bz2
mesa-7a4a2428c0e63af138a54a1a2b45be4e70906926.zip
util/tests: add gc_alloc_size alignment tests
Signed-off-by: Rhys Perry <pendingchaos02@gmail.com> Reviewed-by: Matt Turner <mattst88@gmail.com> Part-of: <https://gitlab.freedesktop.org/mesa/mesa/-/merge_requests/23501>
Diffstat (limited to 'src/util/ralloc.c')
-rw-r--r--src/util/ralloc.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/util/ralloc.c b/src/util/ralloc.c
index c3a4befc144..d785ef451bd 100644
--- a/src/util/ralloc.c
+++ b/src/util/ralloc.c
@@ -38,9 +38,9 @@
#define CANARY 0x5A1106
#if defined(__LP64__) || defined(_WIN64)
-#define HEADER_ALIGN alignas(16)
+#define HEADER_ALIGN 16
#else
-#define HEADER_ALIGN alignas(8)
+#define HEADER_ALIGN 8
#endif
/* Align the header's size so that ralloc() allocations will return with the
@@ -50,7 +50,7 @@
*/
struct ralloc_header
{
- HEADER_ALIGN
+ alignas(HEADER_ALIGN)
#ifndef NDEBUG
/* A canary value used to determine whether a pointer is ralloc'd. */
@@ -578,7 +578,7 @@ typedef struct
* allocated using a freelist backed by a simple linear allocator.
*/
typedef struct gc_slab {
- HEADER_ALIGN
+ alignas(HEADER_ALIGN)
gc_ctx *ctx;
@@ -801,6 +801,9 @@ gc_alloc_size(gc_ctx *ctx, size_t size, size_t align)
*/
assert((align - alignof(gc_block_header)) <= 127);
+ /* We can only align as high as the slab is. */
+ assert(align <= HEADER_ALIGN);
+
size_t header_size = align64(sizeof(gc_block_header), align);
size = align64(size, align);
size += header_size;
@@ -954,7 +957,7 @@ gc_sweep_end(gc_ctx *ctx)
struct linear_header {
- HEADER_ALIGN
+ alignas(HEADER_ALIGN)
#ifndef NDEBUG
unsigned magic; /* for debugging */