clang/llvm 9 fix - do not eliminate a store to a fake "const"

This is *much* better (9 kbytes better) than dropping "*const"
optimization trick.

Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
This commit is contained in:
Denys Vlasenko 2019-10-25 12:12:22 +02:00
parent e1a7c97ac6
commit af7169b4a7
5 changed files with 27 additions and 7 deletions

View file

@ -411,7 +411,7 @@ extern struct test_statics *const test_ptr_to_statics;
#define leaving (S.leaving )
#define INIT_S() do { \
(*(struct test_statics**)&test_ptr_to_statics) = xzalloc(sizeof(S)); \
(*(struct test_statics**)not_const_pp(&test_ptr_to_statics)) = xzalloc(sizeof(S)); \
barrier(); \
} while (0)
#define DEINIT_S() do { \