[LLVMbugs] [Bug 14771] New: c++11: Fibonacci numbers calculations cause infinite loop

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Tue Jan 1 04:51:06 PST 2013


http://llvm.org/bugs/show_bug.cgi?id=14771

             Bug #: 14771
           Summary: c++11: Fibonacci numbers calculations cause infinite
                    loop
           Product: clang
           Version: 3.2
          Platform: PC
        OS/Version: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++11
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: dushistov at gmail.com
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified


I play with c++11. And such code cause 100% cpu usage during 1 hour,
after that I just press ctrl+c.

#include <cstdio>

constexpr unsigned int fib(unsigned int N)
{
    return N <= 1 ? 1 : (fib(N - 1) + fib(N - 2));
}

template <unsigned int N>
struct Fib {
    enum { value = fib(N) };
};

int main()
{
    printf("%u\n", Fib<1000>::value);
}

I run clang in such way:
clang++ -fconstexpr-depth=10000 -Wall -std=c++0x test8.cpp

PS
time g++ -fconstexpr-depth=10000 -Wall -std=c++0x test8.cpp

real    0m0.108s
user    0m0.080s
sys     0m0.010s

So > 1 hour of work seems strange.

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list