[LLVMbugs] [Bug 9511] New: Crash on invalid variadic template code

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sat Mar 19 00:25:57 PDT 2011


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

           Summary: Crash on invalid variadic template code
           Product: clang
           Version: unspecified
          Platform: Macintosh
        OS/Version: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++0x
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: jonathan.sauer at gmx.de
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


Created an attachment (id=6345)
 --> (http://llvm.org/bugs/attachment.cgi?id=6345)
The complete stacktrace/output of clang

The following (invalid) code results in a crash of clang:

template <typename T>
class Value {
    protected:
        T    value;
};


template <typename... T>
class Tuple: private Value<T>... {
    public:
        template <typename V>
        V& get()
        {
            // <T> should be <V>
            return this->Value<T>::value;
        }
};


int main(int, char**)
{
    Tuple<int, char, float>    t;
    return t.get<int>();
}

This results in (complete output in the attachment):

$ /opt/bin/clang -std=c++0x clangBugs.cpp 
clangBugs.cpp:14:11: error: cannot compile this l-value expression yet
                        return this->Value<T>::value;
                               ^~~~~~~~~~~~~~~~~~~~~
Assertion failed: (0 && "Unexpected builtin type!"), function ConvertNewType,
file /Users/rynnsauer/LLVM/llvm/tools/clang/lib/CodeGen/CodeGenTypes.cpp, line
256.


My clang version:

$ /opt/bin/clang --version
clang version 2.9 (trunk 127156)
Target: x86_64-apple-darwin10
Thread model: posix


While clang should display an error, as the code is (obviously) invalid, it
should not crash.

-- 
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