@@ -38,11 +38,12 @@ const void withNoexcept()
3838 static uint64_t __valueGuard;
3939 alignas(foo) static char __value[sizeof(foo)];
4040
41- if(! __valueGuard) {
41+ if(( __valueGuard & 255) == 0 ) {
4242 if(__cxa_guard_acquire(&__valueGuard)) {
4343 new (&__value)foo{std::move(__lambda_4_23.operator()())};
4444 __valueGuard = true;
4545 __cxa_guard_release(&__valueGuard);
46+ /* __cxa_atexit(foo::~foo, &__value, &__dso_handle); */
4647 }
4748
4849 }
@@ -78,7 +79,7 @@ const void withNoexceptFalse()
7879 static uint64_t __valueGuard;
7980 alignas(foo) static char __value[sizeof(foo)];
8081
81- if(! __valueGuard) {
82+ if(( __valueGuard & 255) == 0 ) {
8283 if(__cxa_guard_acquire(&__valueGuard)) {
8384 try
8485 {
@@ -89,6 +90,7 @@ const void withNoexceptFalse()
8990 throw ;
9091 }
9192 __cxa_guard_release(&__valueGuard);
93+ /* __cxa_atexit(foo::~foo, &__value, &__dso_handle); */
9294 }
9395
9496 }
@@ -124,11 +126,12 @@ const void withNoexceptTrue()
124126 static uint64_t __valueGuard;
125127 alignas(foo) static char __value[sizeof(foo)];
126128
127- if(! __valueGuard) {
129+ if(( __valueGuard & 255) == 0 ) {
128130 if(__cxa_guard_acquire(&__valueGuard)) {
129131 new (&__value)foo{std::move(__lambda_12_23.operator()())};
130132 __valueGuard = true;
131133 __cxa_guard_release(&__valueGuard);
134+ /* __cxa_atexit(foo::~foo, &__value, &__dso_handle); */
132135 }
133136
134137 }
@@ -179,7 +182,7 @@ void viaFunction()
179182 static uint64_t __fGuard;
180183 alignas(foo) static char __f[sizeof(foo)];
181184
182- if(! __fGuard) {
185+ if(( __fGuard & 255) == 0 ) {
183186 if(__cxa_guard_acquire(&__fGuard)) {
184187 try
185188 {
@@ -190,6 +193,7 @@ void viaFunction()
190193 throw ;
191194 }
192195 __cxa_guard_release(&__fGuard);
196+ /* __cxa_atexit(foo::~foo, &__f, &__dso_handle); */
193197 }
194198
195199 }
0 commit comments