[llvm-dev] clang emits calls to consexpr function.

kamlesh kumar via llvm-dev llvm-dev at lists.llvm.org
Tue Feb 5 04:41:30 PST 2019


Hi Devs,
consider below testcase

$cat test.cpp

constexpr int product()
{

    return 10*20;
}
int main()
{
const   int x = product();
    return 0;
}


$./clang test.cpp -std=c++11 -S
$./clang -v
clang version 9.0.0
Target: x86_64-unknown-linux-gnu

$cat test.s

main:
        .cfi_startproc
# %bb.0:
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset %rbp, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register %rbp
        subq    $16, %rsp
        movl    $0, -4(%rbp)
        callq   _Z7productv    //here you can see the calls to product
function
        xorl    %ecx, %ecx
        movl    %eax, -8(%rbp)
        movl    %ecx, %eax
        addq    $16, %rsp
        popq    %rbp
        .cfi_def_cfa %rsp, 8
        retq


while g++ do not emits calls to constexpr function
$g++ test.cpp -std=c++11
$cat test.s
main:
.LFB1:
        .cfi_startproc
        pushq   %rbp
        .cfi_def_cfa_offset 16
        .cfi_offset 6, -16
        movq    %rsp, %rbp
        .cfi_def_cfa_register 6
        movl    $200, -4(%rbp)
        movl    $0, %eax
        popq    %rbp
        .cfi_def_cfa 7, 8
        ret
        .cfi_endproc

is this bug in clang compiler?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20190205/ea40cfba/attachment.html>


More information about the llvm-dev mailing list