[LLVMbugs] gccas bug; testcase enclosed (more details)

Chris Lattner sabre at nondot.org
Fri May 20 15:53:11 PDT 2005


On Fri, 20 May 2005, John Mellor-Crummey wrote:

> this is a follow-up posting to my previous message that is duplicated below.
>
> we isolated the problem to the rewriting of sprintf calls into strcpy calls. 
> we aren't sure exactly what the problem is (since we don't understand enough 
> about llvm yet) that is causing a type cast to be omitted, but now we have a 
> workaround that we are using - we simply avoid rewriting sprintf as strcpy. 
> I'm sure the author will be able to spot the problem in a few minutes whereas 
> it would take us longer to understand what should have been done instead.

Wow you found two bugs.  Thanks for reporting this.  Here's the first bug 
(the one that broke bugpoint):
http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050516/026625.html
and its testcase:
http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050516/026624.html

Here's the second bug patch (simplify-libcalls):
http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050516/026626.html
and its testcase:
http://mail.cs.uiuc.edu/pipermail/llvm-commits/Week-of-Mon-20050516/026627.html

Thanks again,

-Chris


>> We are using LLVM from CVS and encountered a bug in gccas. We used bugpoint 
>> to help pinpoint the error.
>> 
>> command to repeat error:
>> 
>> opt bugpoint-passinput.bc -simplify-libcalls
>> 
>> the offending file is attached.
>> 
>> Unfortunately, bugpoint fell over while trying to reduce the test case. It 
>> emitted the error message:
>> 
>> Checking instruction '': Success!
>> PHINode should have one entry for each predecessor of its parent basic 
>> block!
>>         %i.3 = phi int [ %inc.11, %endif.5 ], [ 0, %endif.0 ], [ 0, 
>> %endif.0 ], [ 0, %endif.0 ], [ 0, %endif.0 ], [ 0, %endif.0 ] ; <int> 
>> [#uses=3]
>> Broken module found, compilation aborted!
>> Checking instruction 'tmp.208': bugpoint((anonymous 
>> namespace)::PrintStackTrace()+0x1a)[0x873fada]
>> bugpoint((anonymous namespace)::SignalHandler(int)+0xcb)[0x873fd4d]
>> [0xffffe420]
>> /lib/libc.so.6(abort+0x16d)[0xb7dd236d]
>> bugpoint((anonymous namespace)::Verifier::abortIfBroken()+0xd5)[0x86fe6d3]
>> bugpoint((anonymous 
>> namespace)::Verifier::runOnFunction(llvm::Function&)+0x57)[0x86fdd6f]
>> bugpoint(llvm::PassManagerTraits<llvm::Function>::runPass(llvm::FunctionPass*, 
>> llvm::Function*)+0x1f)[0x86e1905]
>> bugpoint(llvm::PassManagerT<llvm::Function>::runOnUnit(llvm::Function*)+0x5c3)[0x86d7657]
>> bugpoint(llvm::PassManagerTraits<llvm::Function>::runOnFunction(llvm::Function&)+0x1f)[0x86d820d]
>> bugpoint(llvm::FunctionPass::runOnModule(llvm::Module&)+0xa7)[0x868c7d7]
>> bugpoint(llvm::PassManagerTraits<llvm::Module>::runPass(llvm::ModulePass*, 
>> llvm::Module*)+0x1f)[0x86e199b]
>> bugpoint(llvm::PassManagerT<llvm::Module>::runOnUnit(llvm::Module*)+0x5c3)[0x86d57e3]
>> bugpoint(llvm::PassManagerTraits<llvm::Module>::runOnModule(llvm::Module&)+0x1f)[0x86d6e77]
>> bugpoint(llvm::PassManager::run(llvm::Module&)+0x23)[0x868bbe1]
>> bugpoint(llvm::BugDriver::deleteInstructionFromProgram(llvm::Instruction 
>> const*, unsigned int) const+0x366)[0x840696a]
>> bugpoint[0x83f6209]
>> bugpoint(llvm::BugDriver::debugOptimizerCrash()+0x1cf)[0x83f6669]
>> bugpoint(llvm::BugDriver::run()+0x5d)[0x83f3207]
>> bugpoint(main+0xc7)[0x84149cf]
>> /lib/libc.so.6(__libc_start_main+0xb8)[0xb7dbd488]
>> bugpoint[0x83f29c1]
>> Abort

-Chris

-- 
http://nondot.org/sabre/
http://llvm.cs.uiuc.edu/




More information about the llvm-bugs mailing list