Dear developers:
When I am doing basicblock pass, I meet a bug: there is an
iterator "I" in a basicblock, and it is not pointing to the first
instruction in this basicblock. However, "I--;" will fail by an
assertion.
The basic block ("I" is pointing to the second instruction) in
test.ll:
bb: ; preds = %bb1
%1 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([42 x
i8]* @.str1, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
%2 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([40 x
i8]* @.str2, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
%3 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([40 x
i8]* @.str3, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
%4 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([42 x
i8]* @.str, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
br label %bb1
The code slice in verify-fixrace.cpp in attachment:
cerr << "IsFirst Current Inst: " << *I;
cerr << "IsFirst First Inst: " << *BB->begin();
I--;
Output is:
Inst: %2 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr
([40 x i8]* @.str2, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
Backward Visit BB: bb
IsFirst Current Inst: %2 = call i32 (i8*, ...)* @printf(i8* noalias
getelementptr ([40 x i8]* @.str2, i32 0, i32 0)) nounwind ; <i32>
[#uses=0]
IsFirst First Inst: %1 = call i32 (i8*, ...)* @printf(i8* noalias
getelementptr ([42 x i8]* @.str1, i32 0, i32 0)) nounwind ; <i32>
[#uses=0]
opt: /home/heming/defens/llvm-2.5/include/llvm/ADT/ilist.h:173:
llvm::ilist_iterator<NodeTy>&
llvm::ilist_iterator<NodeTy>::operator--() [with NodeTy =
llvm::Instruction]: Assertion `Traits::getNext(NodePtr) &&
"--'d off
the beginning of an ilist!"' failed.
0 opt 0x08642be4
1 opt 0x08642f26
2 0xb7f7f420 __kernel_sigreturn + 0
3 libc.so.6 0xb7d0ca01 abort + 257
4 libc.so.6 0xb7d0410e __assert_fail + 238
5 opt 0x08357997
llvm::ilist_iterator<llvm::Instruction>::operator--() + 87
6 opt 0x08367104
llvm::ilist_iterator<llvm::Instruction>::operator--(int) + 28
7 verify-fixrace-stub.so 0xb7f781be
defens::verify_fixrace_stub::DFSBackward(llvm::Instruction*,
std::string&, int, bool) + 826
8 verify-fixrace-stub.so 0xb7f78311
defens::verify_fixrace_stub::runOnBasicBlock(llvm::BasicBlock&) + 261
9 opt 0x085cdaf4
10 opt 0x085cee1c
llvm::FPPassManager::runOnFunction(llvm::Function&) + 250
11 opt 0x085cefb8
llvm::FPPassManager::runOnModule(llvm::Module&) + 98
12 opt 0x085cd8a3
llvm::MPPassManager::runOnModule(llvm::Module&) + 197
13 opt 0x085cf256
llvm::PassManagerImpl::run(llvm::Module&) + 116
14 opt 0x085cf2af
llvm::PassManager::run(llvm::Module&) + 27
15 opt 0x082f91d0 main + 4452
16 libc.so.6 0xb7cf6450 __libc_start_main + 224
17 opt 0x082e9c11 __gxx_personality_v0 + 849
Quoting hc2428 at columbia.edu: I am using LLVM-2.5. Here is the attachment.> Dear developers: > When I am doing basicblock pass, I meet a bug: there is an > iterator "I" in a basicblock, and it is not pointing to the first > instruction in this basicblock. However, "I--;" will fail by an > assertion. > > The basic block ("I" is pointing to the second instruction) in test.ll: > bb: ; preds = %bb1 > %1 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([42 x > i8]* @.str1, i32 0, i32 0)) nounwind ; <i32> [#uses=0] > %2 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([40 x > i8]* @.str2, i32 0, i32 0)) nounwind ; <i32> [#uses=0] > %3 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([40 x > i8]* @.str3, i32 0, i32 0)) nounwind ; <i32> [#uses=0] > %4 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([42 x > i8]* @.str, i32 0, i32 0)) nounwind ; <i32> [#uses=0] > br label %bb1 > > > The code slice in verify-fixrace.cpp in attachment: > > cerr << "IsFirst Current Inst: " << *I; > cerr << "IsFirst First Inst: " << *BB->begin(); > I--; > > > > Output is: > Inst: %2 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr > ([40 x i8]* @.str2, i32 0, i32 0)) nounwind ; <i32> [#uses=0] > Backward Visit BB: bb > IsFirst Current Inst: %2 = call i32 (i8*, ...)* @printf(i8* noalias > getelementptr ([40 x i8]* @.str2, i32 0, i32 0)) nounwind ; <i32> > [#uses=0] > IsFirst First Inst: %1 = call i32 (i8*, ...)* @printf(i8* noalias > getelementptr ([42 x i8]* @.str1, i32 0, i32 0)) nounwind ; <i32> > [#uses=0] > opt: /home/heming/defens/llvm-2.5/include/llvm/ADT/ilist.h:173: > llvm::ilist_iterator<NodeTy>& > llvm::ilist_iterator<NodeTy>::operator--() [with NodeTy > llvm::Instruction]: Assertion `Traits::getNext(NodePtr) && "--'d off > the beginning of an ilist!"' failed. > 0 opt 0x08642be4 > 1 opt 0x08642f26 > 2 0xb7f7f420 __kernel_sigreturn + 0 > 3 libc.so.6 0xb7d0ca01 abort + 257 > 4 libc.so.6 0xb7d0410e __assert_fail + 238 > 5 opt 0x08357997 > llvm::ilist_iterator<llvm::Instruction>::operator--() + 87 > 6 opt 0x08367104 > llvm::ilist_iterator<llvm::Instruction>::operator--(int) + 28 > 7 verify-fixrace-stub.so 0xb7f781be > defens::verify_fixrace_stub::DFSBackward(llvm::Instruction*, > std::string&, int, bool) + 826 > 8 verify-fixrace-stub.so 0xb7f78311 > defens::verify_fixrace_stub::runOnBasicBlock(llvm::BasicBlock&) + 261 > 9 opt 0x085cdaf4 > 10 opt 0x085cee1c > llvm::FPPassManager::runOnFunction(llvm::Function&) + 250 > 11 opt 0x085cefb8 > llvm::FPPassManager::runOnModule(llvm::Module&) + 98 > 12 opt 0x085cd8a3 > llvm::MPPassManager::runOnModule(llvm::Module&) + 197 > 13 opt 0x085cf256 > llvm::PassManagerImpl::run(llvm::Module&) + 116 > 14 opt 0x085cf2af > llvm::PassManager::run(llvm::Module&) + 27 > 15 opt 0x082f91d0 main + 4452 > 16 libc.so.6 0xb7cf6450 __libc_start_main + 224 > 17 opt 0x082e9c11 __gxx_personality_v0 + 849 > > > > _______________________________________________ > LLVM Developers mailing list > LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu > http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev > >-------------- next part -------------- A non-text attachment was scrubbed... Name: bug.tar.gz Type: application/x-gzip-compressed Size: 4842 bytes Desc: not available URL: <http://lists.llvm.org/pipermail/llvm-dev/attachments/20090926/e8742696/attachment.bin>
On 27 Sep., 05:45, hc2... at columbia.edu wrote:> Dear developers: > When I am doing basicblock pass, I meet a bug: there is an > iterator "I" in a basicblock, and it is not pointing to the first > instruction in this basicblock. However, "I--;" will fail by an > assertion.Hi hc! are you on SVN trunk? Cheers, Gabor> > The basic block ("I" is pointing to the second instruction) in test.ll: > bb: ; preds = %bb1 > %1 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([42 x > i8]* @.str1, i32 0, i32 0)) nounwind ; <i32> [#uses=0] > %2 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([40 x > i8]* @.str2, i32 0, i32 0)) nounwind ; <i32> [#uses=0] > %3 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([40 x > i8]* @.str3, i32 0, i32 0)) nounwind ; <i32> [#uses=0] > %4 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([42 x > i8]* @.str, i32 0, i32 0)) nounwind ; <i32> [#uses=0] > br label %bb1 > > The code slice in verify-fixrace.cpp in attachment: > > cerr << "IsFirst Current Inst: " << *I; > cerr << "IsFirst First Inst: " << *BB->begin(); > I--; > > Output is: > Inst: %2 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr > ([40 x i8]* @.str2, i32 0, i32 0)) nounwind ; <i32> [#uses=0] > Backward Visit BB: bb > IsFirst Current Inst: %2 = call i32 (i8*, ...)* @printf(i8* noalias > getelementptr ([40 x i8]* @.str2, i32 0, i32 0)) nounwind ; <i32> > [#uses=0] > IsFirst First Inst: %1 = call i32 (i8*, ...)* @printf(i8* noalias > getelementptr ([42 x i8]* @.str1, i32 0, i32 0)) nounwind ; <i32> > [#uses=0] > opt: /home/heming/defens/llvm-2.5/include/llvm/ADT/ilist.h:173: > llvm::ilist_iterator<NodeTy>& > llvm::ilist_iterator<NodeTy>::operator--() [with NodeTy = > llvm::Instruction]: Assertion `Traits::getNext(NodePtr) && "--'d off > the beginning of an ilist!"' failed. > 0 opt 0x08642be4 > 1 opt 0x08642f26 > 2 0xb7f7f420 __kernel_sigreturn + 0 > 3 libc.so.6 0xb7d0ca01 abort + 257 > 4 libc.so.6 0xb7d0410e __assert_fail + 238 > 5 opt 0x08357997 > llvm::ilist_iterator<llvm::Instruction>::operator--() + 87 > 6 opt 0x08367104 > llvm::ilist_iterator<llvm::Instruction>::operator--(int) + 28 > 7 verify-fixrace-stub.so 0xb7f781be > defens::verify_fixrace_stub::DFSBackward(llvm::Instruction*, > std::string&, int, bool) + 826 > 8 verify-fixrace-stub.so 0xb7f78311 > defens::verify_fixrace_stub::runOnBasicBlock(llvm::BasicBlock&) + 261 > 9 opt 0x085cdaf4 > 10 opt 0x085cee1c > llvm::FPPassManager::runOnFunction(llvm::Function&) + 250 > 11 opt 0x085cefb8 > llvm::FPPassManager::runOnModule(llvm::Module&) + 98 > 12 opt 0x085cd8a3 > llvm::MPPassManager::runOnModule(llvm::Module&) + 197 > 13 opt 0x085cf256 > llvm::PassManagerImpl::run(llvm::Module&) + 116 > 14 opt 0x085cf2af > llvm::PassManager::run(llvm::Module&) + 27 > 15 opt 0x082f91d0 main + 4452 > 16 libc.so.6 0xb7cf6450 __libc_start_main + 224 > 17 opt 0x082e9c11 __gxx_personality_v0 + 849 > > _______________________________________________ > LLVM Developers mailing list > LLVM... at cs.uiuc.edu http://llvm.cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Quoting Gabor Greif <ggreif at gmail.com>:
Hi Gabor,
I am using the release version of 2.5
> On 27 Sep., 05:45, hc2... at columbia.edu wrote:
>> Dear developers:
>> When I am doing basicblock pass, I meet a bug: there is an
>> iterator "I" in a basicblock, and it is not pointing to the
first
>> instruction in this basicblock. However, "I--;" will fail by
an
>> assertion.
>
> Hi hc!
>
> are you on SVN trunk?
>
> Cheers,
>
> Gabor
>
>>
>> The basic block ("I" is pointing to the second instruction)
in test.ll:
>> bb: ; preds = %bb1
>> %1 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr
([42 x
>> i8]* @.str1, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
>> %2 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr
([40 x
>> i8]* @.str2, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
>> %3 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr
([40 x
>> i8]* @.str3, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
>> %4 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr
([42 x
>> i8]* @.str, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
>> br label %bb1
>>
>> The code slice in verify-fixrace.cpp in attachment:
>>
>> cerr << "IsFirst Current Inst: " << *I;
>> cerr << "IsFirst First Inst: " <<
*BB->begin();
>> I--;
>>
>> Output is:
>> Inst: %2 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr
>> ([40 x i8]* @.str2, i32 0, i32 0)) nounwind ; <i32>
[#uses=0]
>> Backward Visit BB: bb
>> IsFirst Current Inst: %2 = call i32 (i8*, ...)* @printf(i8* noalias
>> getelementptr ([40 x i8]* @.str2, i32 0, i32 0)) nounwind
>> ; <i32>
>> [#uses=0]
>> IsFirst First Inst: %1 = call i32 (i8*, ...)* @printf(i8* noalias
>> getelementptr ([42 x i8]* @.str1, i32 0, i32 0)) nounwind
>> ; <i32>
>> [#uses=0]
>> opt: /home/heming/defens/llvm-2.5/include/llvm/ADT/ilist.h:173:
>> llvm::ilist_iterator<NodeTy>&
>> llvm::ilist_iterator<NodeTy>::operator--() [with NodeTy =
>> llvm::Instruction]: Assertion `Traits::getNext(NodePtr) &&
"--'d off
>> the beginning of an ilist!"' failed.
>> 0 opt 0x08642be4
>> 1 opt 0x08642f26
>> 2 0xb7f7f420 __kernel_sigreturn + 0
>> 3 libc.so.6 0xb7d0ca01 abort + 257
>> 4 libc.so.6 0xb7d0410e __assert_fail + 238
>> 5 opt 0x08357997
>> llvm::ilist_iterator<llvm::Instruction>::operator--() + 87
>> 6 opt 0x08367104
>> llvm::ilist_iterator<llvm::Instruction>::operator--(int) + 28
>> 7 verify-fixrace-stub.so 0xb7f781be
>> defens::verify_fixrace_stub::DFSBackward(llvm::Instruction*,
>> std::string&, int, bool) + 826
>> 8 verify-fixrace-stub.so 0xb7f78311
>> defens::verify_fixrace_stub::runOnBasicBlock(llvm::BasicBlock&) +
261
>> 9 opt 0x085cdaf4
>> 10 opt 0x085cee1c
>> llvm::FPPassManager::runOnFunction(llvm::Function&) + 250
>> 11 opt 0x085cefb8
>> llvm::FPPassManager::runOnModule(llvm::Module&) + 98
>> 12 opt 0x085cd8a3
>> llvm::MPPassManager::runOnModule(llvm::Module&) + 197
>> 13 opt 0x085cf256
>> llvm::PassManagerImpl::run(llvm::Module&) + 116
>> 14 opt 0x085cf2af
>> llvm::PassManager::run(llvm::Module&) + 27
>> 15 opt 0x082f91d0 main + 4452
>> 16 libc.so.6 0xb7cf6450 __libc_start_main + 224
>> 17 opt 0x082e9c11 __gxx_personality_v0 + 849
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVM... at cs.uiuc.edu
>>
http://llvm.cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>
AAAH!
I see you are still at 2.5. Then this patch (the fix)
is relevant for you:
<http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/
ilist.h?r1=66061&r2=68785&diff_format=h>
Cheers,
Gabor
On 27 Sep., 05:45, hc2... at columbia.edu wrote:> Dear developers:
> When I am doing basicblock pass, I meet a bug: there is an
> iterator "I" in a basicblock, and it is not pointing to the first
> instruction in this basicblock. However, "I--;" will fail by an
> assertion.
>
> The basic block ("I" is pointing to the second instruction) in
test.ll:
> bb: ; preds = %bb1
> %1 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([42 x
> i8]* @.str1, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
> %2 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([40 x
> i8]* @.str2, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
> %3 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([40 x
> i8]* @.str3, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
> %4 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr ([42 x
> i8]* @.str, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
> br label %bb1
>
> The code slice in verify-fixrace.cpp in attachment:
>
> cerr << "IsFirst Current Inst: " << *I;
> cerr << "IsFirst First Inst: " << *BB->begin();
> I--;
>
> Output is:
> Inst: %2 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr
> ([40 x i8]* @.str2, i32 0, i32 0)) nounwind ; <i32>
[#uses=0]
> Backward Visit BB: bb
> IsFirst Current Inst: %2 = call i32 (i8*, ...)* @printf(i8* noalias
> getelementptr ([40 x i8]* @.str2, i32 0, i32 0)) nounwind ;
<i32>
> [#uses=0]
> IsFirst First Inst: %1 = call i32 (i8*, ...)* @printf(i8* noalias
> getelementptr ([42 x i8]* @.str1, i32 0, i32 0)) nounwind ;
<i32>
> [#uses=0]
> opt: /home/heming/defens/llvm-2.5/include/llvm/ADT/ilist.h:173:
> llvm::ilist_iterator<NodeTy>&
> llvm::ilist_iterator<NodeTy>::operator--() [with NodeTy =
> llvm::Instruction]: Assertion `Traits::getNext(NodePtr) &&
"--'d off
> the beginning of an ilist!"' failed.
> 0 opt 0x08642be4
> 1 opt 0x08642f26
> 2 0xb7f7f420 __kernel_sigreturn + 0
> 3 libc.so.6 0xb7d0ca01 abort + 257
> 4 libc.so.6 0xb7d0410e __assert_fail + 238
> 5 opt 0x08357997
> llvm::ilist_iterator<llvm::Instruction>::operator--() + 87
> 6 opt 0x08367104
> llvm::ilist_iterator<llvm::Instruction>::operator--(int) + 28
> 7 verify-fixrace-stub.so 0xb7f781be
> defens::verify_fixrace_stub::DFSBackward(llvm::Instruction*,
> std::string&, int, bool) + 826
> 8 verify-fixrace-stub.so 0xb7f78311
> defens::verify_fixrace_stub::runOnBasicBlock(llvm::BasicBlock&) + 261
> 9 opt 0x085cdaf4
> 10 opt 0x085cee1c
> llvm::FPPassManager::runOnFunction(llvm::Function&) + 250
> 11 opt 0x085cefb8
> llvm::FPPassManager::runOnModule(llvm::Module&) + 98
> 12 opt 0x085cd8a3
> llvm::MPPassManager::runOnModule(llvm::Module&) + 197
> 13 opt 0x085cf256
> llvm::PassManagerImpl::run(llvm::Module&) + 116
> 14 opt 0x085cf2af
> llvm::PassManager::run(llvm::Module&) + 27
> 15 opt 0x082f91d0 main + 4452
> 16 libc.so.6 0xb7cf6450 __libc_start_main + 224
> 17 opt 0x082e9c11 __gxx_personality_v0 + 849
>
> _______________________________________________
> LLVM Developers mailing list
> LLVM... at cs.uiuc.edu
http://llvm.cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
Quoting Gabor Greif <ggreif at gmail.com>:
Hi Gabor,
I can not open the link, can you send again?
> AAAH!
>
> I see you are still at 2.5. Then this patch (the fix)
> is relevant for you:
>
> <http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/ADT/
> ilist.h?r1=66061&r2=68785&diff_format=h>
>
> Cheers,
>
> Gabor
>
>
>
> On 27 Sep., 05:45, hc2... at columbia.edu wrote:
>> Dear developers:
>> When I am doing basicblock pass, I meet a bug: there is an
>> iterator "I" in a basicblock, and it is not pointing to the
first
>> instruction in this basicblock. However, "I--;" will fail by
an
>> assertion.
>>
>> The basic block ("I" is pointing to the second instruction)
in test.ll:
>> bb: ; preds = %bb1
>> %1 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr
([42 x
>> i8]* @.str1, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
>> %2 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr
([40 x
>> i8]* @.str2, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
>> %3 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr
([40 x
>> i8]* @.str3, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
>> %4 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr
([42 x
>> i8]* @.str, i32 0, i32 0)) nounwind ; <i32> [#uses=0]
>> br label %bb1
>>
>> The code slice in verify-fixrace.cpp in attachment:
>>
>> cerr << "IsFirst Current Inst: " << *I;
>> cerr << "IsFirst First Inst: " <<
*BB->begin();
>> I--;
>>
>> Output is:
>> Inst: %2 = call i32 (i8*, ...)* @printf(i8* noalias getelementptr
>> ([40 x i8]* @.str2, i32 0, i32 0)) nounwind ; <i32>
[#uses=0]
>> Backward Visit BB: bb
>> IsFirst Current Inst: %2 = call i32 (i8*, ...)* @printf(i8* noalias
>> getelementptr ([40 x i8]* @.str2, i32 0, i32 0)) nounwind
>> ; <i32>
>> [#uses=0]
>> IsFirst First Inst: %1 = call i32 (i8*, ...)* @printf(i8* noalias
>> getelementptr ([42 x i8]* @.str1, i32 0, i32 0)) nounwind
>> ; <i32>
>> [#uses=0]
>> opt: /home/heming/defens/llvm-2.5/include/llvm/ADT/ilist.h:173:
>> llvm::ilist_iterator<NodeTy>&
>> llvm::ilist_iterator<NodeTy>::operator--() [with NodeTy =
>> llvm::Instruction]: Assertion `Traits::getNext(NodePtr) &&
"--'d off
>> the beginning of an ilist!"' failed.
>> 0 opt 0x08642be4
>> 1 opt 0x08642f26
>> 2 0xb7f7f420 __kernel_sigreturn + 0
>> 3 libc.so.6 0xb7d0ca01 abort + 257
>> 4 libc.so.6 0xb7d0410e __assert_fail + 238
>> 5 opt 0x08357997
>> llvm::ilist_iterator<llvm::Instruction>::operator--() + 87
>> 6 opt 0x08367104
>> llvm::ilist_iterator<llvm::Instruction>::operator--(int) + 28
>> 7 verify-fixrace-stub.so 0xb7f781be
>> defens::verify_fixrace_stub::DFSBackward(llvm::Instruction*,
>> std::string&, int, bool) + 826
>> 8 verify-fixrace-stub.so 0xb7f78311
>> defens::verify_fixrace_stub::runOnBasicBlock(llvm::BasicBlock&) +
261
>> 9 opt 0x085cdaf4
>> 10 opt 0x085cee1c
>> llvm::FPPassManager::runOnFunction(llvm::Function&) + 250
>> 11 opt 0x085cefb8
>> llvm::FPPassManager::runOnModule(llvm::Module&) + 98
>> 12 opt 0x085cd8a3
>> llvm::MPPassManager::runOnModule(llvm::Module&) + 197
>> 13 opt 0x085cf256
>> llvm::PassManagerImpl::run(llvm::Module&) + 116
>> 14 opt 0x085cf2af
>> llvm::PassManager::run(llvm::Module&) + 27
>> 15 opt 0x082f91d0 main + 4452
>> 16 libc.so.6 0xb7cf6450 __libc_start_main + 224
>> 17 opt 0x082e9c11 __gxx_personality_v0 + 849
>>
>> _______________________________________________
>> LLVM Developers mailing list
>> LLVM... at cs.uiuc.edu
>>
http://llvm.cs.uiuc.eduhttp://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
> _______________________________________________
> LLVM Developers mailing list
> LLVMdev at cs.uiuc.edu http://llvm.cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvmdev
>
>