mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2024-11-25 17:10:23 +00:00
c63fe0e1f1
The setup is a bit peculiar: both the definition and the use site of these TLS variables have to be in a shared library, otherwise the linker might relax the global-dynamic access mode to something that doesn't require a `__tls_get_addr` call.
21 lines
468 B
C++
21 lines
468 B
C++
/*
|
|
* Copyright (c) 2023, Daniel Bertalan <dani@danielbertalan.dev>
|
|
*
|
|
* SPDX-License-Identifier: BSD-2-Clause
|
|
*/
|
|
|
|
#include <LibTest/Macros.h>
|
|
|
|
__thread int one = 1;
|
|
__thread int two = 2;
|
|
[[gnu::tls_model("initial-exec")]] __thread int three = 3;
|
|
[[gnu::tls_model("initial-exec")]] __thread int four = 4;
|
|
|
|
void check_increment_worked();
|
|
void check_increment_worked()
|
|
{
|
|
EXPECT_EQ(one, 2);
|
|
EXPECT_EQ(two, 3);
|
|
EXPECT_EQ(three, 4);
|
|
EXPECT_EQ(four, 5);
|
|
}
|