Installing clang and llvm-runtime packages on my Debian testing, here is what I get :
$ cat hello.c
#include <stdio.h>
int main (void) {
printf ("Hello, world!\n");
return 0;
}
$ clang -emit-llvm -c hello.c && lli hello.o
lli: hello.o: unknown type in type table
However, installing llvm-3.1-runtime as well, 3.1 being the LLVM version clang is based on, I get (forcing the lli version to 3.1) :
$ clang -emit-llvm -c hello.c && lli-3.1 hello.o
Hello, world!
I think asking our users to explicitly use versioned LLVM tools with clang is wrong. In the future, I think you should base clang on the default LLVM version, even if a newer LLVM version is available in the repositories.
Regarding the current clang packages in the repositories (3.0 in testing, 3.1 in unstable), you would have to add an epoch to downgrade clang to 3.0 in unstable with a fix and then have to fix migrated to testing. This would also fix the issue above, but epochs are, well, not beautiful...
Arthur.