summaryrefslogtreecommitdiff
path: root/libgomp/loop_ull.c
diff options
context:
space:
mode:
Diffstat (limited to 'libgomp/loop_ull.c')
-rw-r--r--libgomp/loop_ull.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/libgomp/loop_ull.c b/libgomp/loop_ull.c
index 2aaa34e3bca..602737296d4 100644
--- a/libgomp/loop_ull.c
+++ b/libgomp/loop_ull.c
@@ -269,8 +269,11 @@ GOMP_loop_ull_start (bool up, gomp_ull start, gomp_ull end,
#define INLINE_ORDERED_TEAM_IDS_OFF \
((offsetof (struct gomp_work_share, inline_ordered_team_ids) \
+ __alignof__ (long long) - 1) & ~(__alignof__ (long long) - 1))
- if (size > (sizeof (struct gomp_work_share)
- - INLINE_ORDERED_TEAM_IDS_OFF))
+ if (sizeof (struct gomp_work_share)
+ <= INLINE_ORDERED_TEAM_IDS_OFF
+ || __alignof__ (struct gomp_work_share) < __alignof__ (long long)
+ || size > (sizeof (struct gomp_work_share)
+ - INLINE_ORDERED_TEAM_IDS_OFF))
*mem
= (void *) (thr->ts.work_share->ordered_team_ids
= gomp_malloc_cleared (size));