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

--- Comment #4 from Walt Karas <wkaras at yahoo dot com> ---
(conanrunenv) [root@d761696b8abf VagueDynLink]# cc -O2 -Wall -Wextra -pedantic
-std=c++17 -fno-strict-aliasing -fwrapv -S main.cc
(conanrunenv) [root@d761696b8abf VagueDynLink]# cat main.s
        .file   "main.cc"
        .text
        .section       
.text._ZNSt11char_traitsIcE6lengthEPKc,"axG",@progbits,_ZNSt11char_traitsIcE6lengthEPKc,comdat
        .p2align 4,,15
        .weak   _ZNSt11char_traitsIcE6lengthEPKc
        .type   _ZNSt11char_traitsIcE6lengthEPKc, @function
_ZNSt11char_traitsIcE6lengthEPKc:
.LFB419:
        .cfi_startproc
        jmp     strlen
        .cfi_endproc
.LFE419:
        .size   _ZNSt11char_traitsIcE6lengthEPKc,
.-_ZNSt11char_traitsIcE6lengthEPKc
        .section        .rodata.str1.1,"aMS",@progbits,1
.LC0:
        .string "./lib.a"
.LC1:
        .string "dlopen() failed: "
.LC2:
        .string "lib"
.LC3:
        .string "lib() not found\n"
.LC4:
        .string "dlsym() fail: "
        .section        .text.startup,"ax",@progbits
        .p2align 4,,15
        .globl  main
        .type   main, @function
main:
.LFB1854:
        .cfi_startproc
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        movl    $2, %esi
        movl    $.LC0, %edi
        pushq   %rbx
        .cfi_def_cfa_offset 24
        .cfi_offset 3, -24
        subq    $24, %rsp
        .cfi_def_cfa_offset 48
        call    dlopen
        testq   %rax, %rax
        je      .L9
        movl    $.LC2, %esi
        movq    %rax, %rdi
        movq    %rax, %rbx
        call    dlsym
        testq   %rax, %rax
        je      .L5
        call    *%rax
        leaq    15(%rsp), %rbp
.L6:
        movl    _ZZ3foovE12static_local(%rip), %eax
        movl    $_ZSt4cout, %edi
        leal    1(%rax), %esi
        movl    %esi, _ZZ3foovE12static_local(%rip)
        call    _ZNSolsEi
        movq    %rbp, %rsi
        movl    $1, %edx
        movb    $10, 15(%rsp)
        movq    %rax, %rdi
        call   
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
        movq    %rbx, %rdi
        call    dlclose
        addq    $24, %rsp
        .cfi_remember_state
        .cfi_def_cfa_offset 24
        xorl    %eax, %eax
        popq    %rbx
        .cfi_def_cfa_offset 16
        popq    %rbp
        .cfi_def_cfa_offset 8
        ret
.L5:
        .cfi_restore_state
        call    dlerror
        movq    %rax, %rbp
        testq   %rax, %rax
        je      .L10
        movl    $.LC4, %edi
        call    _ZNSt11char_traitsIcE6lengthEPKc
        movl    $.LC4, %esi
        movl    $_ZSt4cout, %edi
        movq    %rax, %rdx
        call   
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
        movq    %rbp, %rsi
        movl    $_ZSt4cout, %edi
        leaq    15(%rsp), %rbp
        call    _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
        movl    $1, %edx
        movq    %rbp, %rsi
        movb    $10, 15(%rsp)
        movq    %rax, %rdi
        call   
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
        jmp     .L6
.L10:
        movl    $.LC3, %esi
        movl    $_ZSt4cout, %edi
        leaq    15(%rsp), %rbp
        call    _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
        jmp     .L6
.L9:
        movl    $.LC1, %edi
        call    _ZNSt11char_traitsIcE6lengthEPKc
        movl    $.LC1, %esi
        movl    $_ZSt4cout, %edi
        movq    %rax, %rdx
        call   
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
        call    dlerror
        movl    $_ZSt4cout, %edi
        movq    %rax, %rsi
        call    _ZStlsISt11char_traitsIcEERSt13basic_ostreamIcT_ES5_PKc
        movl    $1, %edx
        leaq    15(%rsp), %rsi
        movb    $10, 15(%rsp)
        movq    %rax, %rdi
        call   
_ZSt16__ostream_insertIcSt11char_traitsIcEERSt13basic_ostreamIT_T0_ES6_PKS3_l
        movl    $1, %edi
        call    exit
        .cfi_endproc
.LFE1854:
        .size   main, .-main
        .p2align 4,,15
        .type   _GLOBAL__sub_I_main, @function
_GLOBAL__sub_I_main:
.LFB2309:
        .cfi_startproc
        subq    $8, %rsp
        .cfi_def_cfa_offset 16
        movl    $_ZStL8__ioinit, %edi
        call    _ZNSt8ios_base4InitC1Ev
        movl    $__dso_handle, %edx
        movl    $_ZStL8__ioinit, %esi
        movl    $_ZNSt8ios_base4InitD1Ev, %edi
        addq    $8, %rsp
        .cfi_def_cfa_offset 8
        jmp     __cxa_atexit
        .cfi_endproc
.LFE2309:
        .size   _GLOBAL__sub_I_main, .-_GLOBAL__sub_I_main
        .section        .init_array,"aw"
        .align 8
        .quad   _GLOBAL__sub_I_main
        .weak   _ZZ3foovE12static_local
        .section       
.bss._ZZ3foovE12static_local,"awG",@nobits,_ZZ3foovE12static_local,comdat
        .align 4
        .type   _ZZ3foovE12static_local, @gnu_unique_object
        .size   _ZZ3foovE12static_local, 4
_ZZ3foovE12static_local:
        .zero   4
        .local  _ZStL8__ioinit
        .comm   _ZStL8__ioinit,1,1
        .hidden __dso_handle
        .ident  "GCC: (GNU) 8.3.1 20190311 (Red Hat 8.3.1-3)"
        .section        .note.GNU-stack,"",@progbits

Reply via email to