@@ -3256,7 +3256,9 @@ private void* getStackBottom() nothrow @nogc
3256
3256
pthread_getattr_np(pthread_self(), &attr);
3257
3257
pthread_attr_getstack(&attr, &addr, &size);
3258
3258
pthread_attr_destroy(&attr);
3259
- return addr + size;
3259
+ version (StackGrowsDown)
3260
+ addr += size;
3261
+ return addr;
3260
3262
}
3261
3263
else version (FreeBSD )
3262
3264
{
@@ -3267,7 +3269,9 @@ private void* getStackBottom() nothrow @nogc
3267
3269
pthread_attr_get_np(pthread_self(), &attr);
3268
3270
pthread_attr_getstack(&attr, &addr, &size);
3269
3271
pthread_attr_destroy(&attr);
3270
- return addr + size;
3272
+ version (StackGrowsDown)
3273
+ addr += size;
3274
+ return addr;
3271
3275
}
3272
3276
else version (NetBSD )
3273
3277
{
@@ -3278,7 +3282,9 @@ private void* getStackBottom() nothrow @nogc
3278
3282
pthread_attr_get_np(pthread_self(), &attr);
3279
3283
pthread_attr_getstack(&attr, &addr, &size);
3280
3284
pthread_attr_destroy(&attr);
3281
- return addr + size;
3285
+ version (StackGrowsDown)
3286
+ addr += size;
3287
+ return addr;
3282
3288
}
3283
3289
else version (DragonFlyBSD )
3284
3290
{
@@ -3289,7 +3295,9 @@ private void* getStackBottom() nothrow @nogc
3289
3295
pthread_attr_get_np(pthread_self(), &attr);
3290
3296
pthread_attr_getstack(&attr, &addr, &size);
3291
3297
pthread_attr_destroy(&attr);
3292
- return addr + size;
3298
+ version (StackGrowsDown)
3299
+ addr += size;
3300
+ return addr;
3293
3301
}
3294
3302
else version (Solaris )
3295
3303
{
@@ -3306,7 +3314,9 @@ private void* getStackBottom() nothrow @nogc
3306
3314
pthread_getattr_np(pthread_self(), &attr);
3307
3315
pthread_attr_getstack(&attr, &addr, &size);
3308
3316
pthread_attr_destroy(&attr);
3309
- return addr + size;
3317
+ version (StackGrowsDown)
3318
+ addr += size;
3319
+ return addr;
3310
3320
}
3311
3321
else version (CRuntime_Musl )
3312
3322
{
@@ -3316,7 +3326,9 @@ private void* getStackBottom() nothrow @nogc
3316
3326
pthread_getattr_np(pthread_self(), &attr);
3317
3327
pthread_attr_getstack(&attr, &addr, &size);
3318
3328
pthread_attr_destroy(&attr);
3319
- return addr + size;
3329
+ version (StackGrowsDown)
3330
+ addr += size;
3331
+ return addr;
3320
3332
}
3321
3333
else version (CRuntime_UClibc )
3322
3334
{
@@ -3326,7 +3338,9 @@ private void* getStackBottom() nothrow @nogc
3326
3338
pthread_getattr_np(pthread_self(), &attr);
3327
3339
pthread_attr_getstack(&attr, &addr, &size);
3328
3340
pthread_attr_destroy(&attr);
3329
- return addr + size;
3341
+ version (StackGrowsDown)
3342
+ addr += size;
3343
+ return addr;
3330
3344
}
3331
3345
else
3332
3346
static assert (false , " Platform not supported." );
0 commit comments