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

--- Comment #1 from Scherrer Svenja <scherrer.sv at gmail dot com> ---
My apologies, the assembly above is incomplete. The following shows the bug

gcc-87b0749cfb9406790b108208b466cf507ae3c431 -O3 case.c -S -o case.s
--------- OUTPUT ---------
        .file   "case.c"
        .text
        .p2align 4
        .type   g, @function
g:
.LFB3:
        .cfi_startproc
        pushq   %rbx
        .cfi_def_cfa_offset 16
        .cfi_offset 3, -16
        movl    %esi, %ebx
        testw   %di, %di
        jne     .L2
        xorl    %eax, %eax
        testl   %esi, %esi
        sete    %al
.L3:
        movl    e(%rip), %edx
        cmpl    %eax, %edx
        sete    %cl
        testl   %edx, %edx
        setne   %dl
        testb   %dl, %cl
        je      .L1
        testl   %eax, %eax
        je      .L15
.L1:
        popq    %rbx
        .cfi_remember_state
        .cfi_def_cfa_offset 8
        ret
.L2:
        .cfi_restore_state
        call    bar151_
        testl   %ebx, %ebx
        je      .L1
        call    bar162_
        xorl    %eax, %eax
        jmp     .L3
.L15:
        popq    %rbx
        .cfi_def_cfa_offset 8
        jmp     foo
        .cfi_endproc
.LFE3:
        .size   g, .-g
        .section        .text.startup,"ax",@progbits
        .p2align 4
        .globl  main
        .type   main, @function
main:
.LFB4:
        .cfi_startproc
        subq    $8, %rsp
        .cfi_def_cfa_offset 16
        movl    $4, %esi
        xorl    %edi, %edi
        call    g
        xorl    %esi, %esi
        xorl    %edi, %edi
        call    g
        movl    $-1, %esi
        xorl    %edi, %edi
        call    g
        xorl    %eax, %eax
        addq    $8, %rsp
        .cfi_def_cfa_offset 8
        ret
        .cfi_endproc
.LFE4:
        .size   main, .-main
        .local  e
        .comm   e,4,4
        .ident  "GCC: (GNU) 14.0.0 20230806 (experimental)"
        .section        .note.GNU-stack,"",@progbits

---------- END OUTPUT ---------

-----------------------------------------------------------------------
gcc-2b98cc24d6af0432a74f6dad1c722ce21c1f7458 -O3 case.c -S -o case.s
--------- OUTPUT ---------
        .file   "case.c"
        .text
        .p2align 4
        .type   g, @function
g:
.LFB3:
        .cfi_startproc
        testw   %di, %di
        jne     .L11
        ret
.L11:
        pushq   %rbx
        .cfi_def_cfa_offset 16
        .cfi_offset 3, -16
        movl    %esi, %ebx
        call    bar151_
        testl   %ebx, %ebx
        je      .L1
        popq    %rbx
        .cfi_remember_state
        .cfi_restore 3
        .cfi_def_cfa_offset 8
        jmp     bar162_
.L1:
        .cfi_restore_state
        popq    %rbx
        .cfi_def_cfa_offset 8
        ret
        .cfi_endproc
.LFE3:
        .size   g, .-g
        .section        .text.startup,"ax",@progbits
        .p2align 4
        .globl  main
        .type   main, @function
main:
.LFB4:
        .cfi_startproc
        subq    $8, %rsp
        .cfi_def_cfa_offset 16
        movl    $4, %esi
        xorl    %edi, %edi
        call    g
        xorl    %esi, %esi
        xorl    %edi, %edi
        call    g
        movl    $-1, %esi
        xorl    %edi, %edi
        call    g
        xorl    %eax, %eax
        addq    $8, %rsp
        .cfi_def_cfa_offset 8
        ret
        .cfi_endproc
.LFE4:
        .size   main, .-main
        .ident  "GCC: (GNU) 13.1.0"
        .section        .note.GNU-stack,"",@progbits

---------- END OUTPUT ---------

Reply via email to