On 25/06/2014 09:17, Eric Christopher wrote:
I'm not terribly invested in it - just mentioning that I/think/  I've
>relied on this feature on at least a few occasions but it wouldn't be
>hard for me to workaround - just one data point. Others may chime in
>with clearer views.
>
I've definitely used the feature before and likely will again. That
said I personally don't mind doing llvm-dis on a bc file before doing
it.

The main reason to keep some aspect of the functionality: It's the
only way to be sure you're actually passing a bit of bitcode through
the precise pipeline that clang has set up. :)

-eric


So, I went ahead and wrote some tests to see if we can get some coverage.

The source manager struggles to map errors to source locations in binary files, causing crashes:

Assertion failed: (Line && Col && "Line and column should start from 1!"), function translateFileLineCol, file clang/lib/Basic/SourceManager.cpp, line 1597.

Other times the backend segfaults:

4 libLLVMBitReader.dylib 0x000000010efe0816 llvm::BitcodeReader::ParseBitcodeInto(llvm::Module*) + 62 5 libLLVMBitReader.dylib 0x000000010efe5b17 llvm::getLazyBitcodeModule(llvm::MemoryBuffer*, llvm::LLVMContext&) + 129 6 libLLVMBitReader.dylib 0x000000010efe5cba llvm::parseBitcodeFile(llvm::MemoryBuffer*, llvm::LLVMContext&) + 44 7 libLLVMIRReader.dylib 0x000000010e09ad06 llvm::ParseIR(llvm::MemoryBuffer*, llvm::SMDiagnostic&, llvm::LLVMContext&) + 190 8 libclangCodeGen.dylib 0x000000010df4412b clang::CodeGenAction::ExecuteAction() + 395 9 libclangFrontend.dylib 0x000000010d83f139 clang::FrontendAction::Execute() +

So it looks like some engineering will be involved if we want to support it as a first class feature.

I'll try to find a spare day or two to work on this if people really want the feature I guess!

Alp.

--
http://www.nuanti.com
the browser experts

_______________________________________________
cfe-commits mailing list
[email protected]
http://lists.cs.uiuc.edu/mailman/listinfo/cfe-commits

Reply via email to