https://gcc.gnu.org/bugzilla/show_bug.cgi?id=121694

--- Comment #1 from H.J. Lu <hjl.tools at gmail dot com> ---
TLS64_COMBINE has the same issue:

[hjl@gnu-zen4-1 pr121668]$ cat y.c
extern void func1 (long *);
extern int func2 (void);
extern void func3 (void);
static __thread long foo;
static __thread long bar;
long
func (void)
{
  func1 (&foo);
  func1 (&bar);
  if (func2 ())
    func3 ();
  return foo + bar;
}
[hjl@gnu-zen4-1 pr121668]$
/export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/xgcc
-B/export/build/gnu/tools-build/gcc-debug/build-x86_64-linux/gcc/ -Og -fPIC -S
y.c -mtls-dialect=gnu2
[hjl@gnu-zen4-1 pr121668]$ cat y.s
        .file   "y.c"
        .text
        .globl  func
        .type   func, @function
func:
.LFB0:
        .cfi_startproc
        pushq   %rbx
        .cfi_def_cfa_offset 16
        .cfi_offset 3, -16
        leaq    _TLS_MODULE_BASE_@TLSDESC(%rip), %rax
        call    *_TLS_MODULE_BASE_@TLSCALL(%rax)
        movq    %rax, %rbx
        leaq    foo@dtpoff(%rax), %rdi
        addq    %fs:0, %rdi
        call    func1@PLT
        movq    %fs:0, %rax
        leaq    bar@dtpoff(%rbx,%rax), %rdi
        call    func1@PLT
        call    func2@PLT
        testl   %eax, %eax
        jne     .L4
.L2:
        leaq    _TLS_MODULE_BASE_@TLSDESC(%rip), %rax
        call    *_TLS_MODULE_BASE_@TLSCALL(%rax)
        movq    %fs:bar@dtpoff(%rax), %rdx
        addq    %fs:foo@dtpoff(%rax), %rdx
        movq    %rdx, %rax
        popq    %rbx
        .cfi_remember_state
        .cfi_def_cfa_offset 8
        ret
.L4:
        .cfi_restore_state
        call    func3@PLT
        jmp     .L2
        .cfi_endproc
.LFE0:
        .size   func, .-func
        .section        .tbss,"awT",@nobits
        .align 8
        .type   bar, @object
        .size   bar, 8
bar:
        .zero   8
        .align 8
        .type   foo, @object
        .size   foo, 8
foo:
        .zero   8
        .ident  "GCC: (GNU) 16.0.0 20250827 (experimental)"
        .section        .note.GNU-stack,"",@progbits
[hjl@gnu-zen4-1 pr121668]$

Reply via email to