diff options
Diffstat (limited to 'libgomp/loop_ull.c')
-rw-r--r-- | libgomp/loop_ull.c | 7 |
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)); |