[PATCH} Remove '.bc' input support from the frontend

Alp Toker alp at nuanti.com
Thu Jun 26 14:41:19 PDT 2014


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




More information about the cfe-commits mailing list