[LLVMbugs] [Bug 9059] New: Attached C++ file crashes clang in SmallVectorTemplateBase code

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Wed Jan 26 14:19:51 PST 2011


http://llvm.org/bugs/show_bug.cgi?id=9059

           Summary: Attached C++ file crashes clang in
                    SmallVectorTemplateBase code
           Product: clang
           Version: 2.8
          Platform: Macintosh
        OS/Version: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: llvm-bugzilla at larrygritz.com
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


The attachment has a repro case.   The code is an excerpt from the Ptex open
source project -- http://ptex.us

I was running clang/llvm 2.8, direct from the svn repository.  Running on OSX
(10.6).

tar xzvf test.tgz
cd test
clang -c PtexCache.cpp

The stack trace I get is:

$ clang -c PtexCache.cpp
0  libLLVM-2.8.dylib 0x000000010113aa12 PrintStackTrace(void*) + 34
1  libLLVM-2.8.dylib 0x000000010113b533 SignalHandler(int) + 531
2  libSystem.B.dylib 0x00007fff8853467a _sigtramp + 26
3  libSystem.B.dylib 0x0000000000000001 _sigtramp + 2007808417
4  clang             0x00000001001976e6
llvm::SmallVectorTemplateBase<clang::CodeGen::EHCatchScope::Handler,
false>::grow(unsigned long) + 52022
5  clang             0x00000001001965d5
llvm::SmallVectorTemplateBase<clang::CodeGen::EHCatchScope::Handler,
false>::grow(unsigned long) + 47653
6  clang             0x0000000100199a66
llvm::SmallVectorTemplateBase<clang::CodeGen::EHCatchScope::Handler,
false>::grow(unsigned long) + 61110
7  clang             0x00000001001cbc5f std::vector<llvm::Constant*,
std::allocator<llvm::Constant*> >::operator=(std::vector<llvm::Constant*,
std::allocator<llvm::Constant*> > const&) + 76495
8  clang             0x00000001001c53fd std::vector<llvm::Constant*,
std::allocator<llvm::Constant*> >::operator=(std::vector<llvm::Constant*,
std::allocator<llvm::Constant*> > const&) + 49773
9  clang             0x00000001001c5f9e std::vector<llvm::Constant*,
std::allocator<llvm::Constant*> >::operator=(std::vector<llvm::Constant*,
std::allocator<llvm::Constant*> > const&) + 52750
10 clang             0x000000010017c7b3
std::vector<llvm::TrackingVH<llvm::MDNode>,
std::allocator<llvm::TrackingVH<llvm::MDNode> >
>::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::TrackingVH<llvm::MDNode>*,
std::vector<llvm::TrackingVH<llvm::MDNode>,
std::allocator<llvm::TrackingVH<llvm::MDNode> > > >,
llvm::TrackingVH<llvm::MDNode> const&) + 22755
11 clang             0x0000000100226d2b
llvm::SmallVectorTemplateBase<std::pair<clang::FieldDecl const*,
clang::CodeGen::CGBitFieldInfo>, false>::grow(unsigned long) + 7019
12 clang             0x000000010022ce6e
llvm::SmallVectorTemplateBase<std::pair<clang::FieldDecl const*,
clang::CodeGen::CGBitFieldInfo>, false>::grow(unsigned long) + 31918
13 clang             0x000000010022a5b7
llvm::SmallVectorTemplateBase<std::pair<clang::FieldDecl const*,
clang::CodeGen::CGBitFieldInfo>, false>::grow(unsigned long) + 21495
14 clang             0x000000010022cc9b
llvm::SmallVectorTemplateBase<std::pair<clang::FieldDecl const*,
clang::CodeGen::CGBitFieldInfo>, false>::grow(unsigned long) + 31451
15 clang             0x000000010022cf8c
llvm::SmallVectorTemplateBase<std::pair<clang::FieldDecl const*,
clang::CodeGen::CGBitFieldInfo>, false>::grow(unsigned long) + 32204
16 clang             0x000000010022a5b7
llvm::SmallVectorTemplateBase<std::pair<clang::FieldDecl const*,
clang::CodeGen::CGBitFieldInfo>, false>::grow(unsigned long) + 21495
17 clang             0x00000001002541da clang::EmitObjAction::~EmitObjAction()
+ 26554
18 clang             0x000000010025a38f
llvm::SmallVectorTemplateBase<clang::CodeGen::BranchFixup,
false>::grow(unsigned long) + 24607
19 clang             0x000000010025e5eb
llvm::SmallVectorTemplateBase<clang::CodeGen::BranchFixup,
false>::grow(unsigned long) + 41595
20 clang             0x000000010025fdde
llvm::SmallVectorTemplateBase<clang::CodeGen::BranchFixup,
false>::grow(unsigned long) + 47726
21 clang             0x000000010025fe03
llvm::SmallVectorTemplateBase<clang::CodeGen::BranchFixup,
false>::grow(unsigned long) + 47763
22 clang             0x000000010024c10a void
std::__introsort_loop<std::pair<unsigned long long,
clang::CodeGen::ThunkInfo>*, long>(std::pair<unsigned long long,
clang::CodeGen::ThunkInfo>*, std::pair<unsigned long long,
clang::CodeGen::ThunkInfo>*, long) + 2170
23 clang             0x000000010028a04c llvm::GetElementPtrInst*
llvm::GetElementPtrInst::Create<llvm::Value**>(llvm::Value*, llvm::Value**,
llvm::Value**, llvm::Twine const&, llvm::Instruction*) + 2252
24 clang             0x000000010024d11d void
std::__introsort_loop<std::pair<unsigned long long,
clang::CodeGen::ThunkInfo>*, long>(std::pair<unsigned long long,
clang::CodeGen::ThunkInfo>*, std::pair<unsigned long long,
clang::CodeGen::ThunkInfo>*, long) + 6285
25 clang             0x000000010002f5a9 std::vector<std::pair<unsigned int,
unsigned int>, std::allocator<std::pair<unsigned int, unsigned int> >
>::_M_insert_aux(__gnu_cxx::__normal_iterator<std::pair<unsigned int, unsigned
int>*, std::vector<std::pair<unsigned int, unsigned int>,
std::allocator<std::pair<unsigned int, unsigned int> > > >, std::pair<unsigned
int, unsigned int> const&) + 11257
26 clang             0x00000001000095e7 std::_Rb_tree<std::string, std::string,
std::_Identity<std::string>, std::less<std::string>,
std::allocator<std::string> >::_M_erase(std::_Rb_tree_node<std::string>*) +
2343
27 clang             0x0000000100002440
28 clang             0x00000001000083dd std::vector<std::string,
std::allocator<std::string> >::operator=(std::vector<std::string,
std::allocator<std::string> > const&) + 10461
29 clang             0x0000000100000f78
30 clang             0x0000000000000024
Stack dump:
0.      Program arguments: /usr/local/bin/clang -cc1 -triple
x86_64-apple-darwin10.0.0 -emit-obj -mrelax-all -disable-free
-disable-llvm-verifier -main-file-name PtexCache.cpp -pic-level 1
-mdisable-fp-elim -masm-verbose -munwind-tables -target-cpu core2
-target-linker-version 97.14 -resource-dir /usr/local/lib/clang/2.8
-ferror-limit 19 -fmessage-length 80 -stack-protector 1 -fblocks -fexceptions
-fdiagnostics-show-option -fcolor-diagnostics -o PtexCache.o -x c++
PtexCache.cpp 
1.      <eof> parser at end of file
2.      Per-file LLVM IR generation
3.      ./PtexDict.h:196:14: Generating code for declaration
'PtexDict<PtexReader *>::erase'
4.      ./PtexDict.h:567:1: LLVM IR generation of compound statement ('{}')
clang: error: clang frontend command failed due to signal 11 (use -v to see
invocation)

-- 
Configure bugmail: http://llvm.org/bugs/userprefs.cgi?tab=email
------- You are receiving this mail because: -------
You are on the CC list for the bug.



More information about the llvm-bugs mailing list