[LLVMbugs] [Bug 8284] New: use of 'vsnprintf' causes backend crash

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Sat Oct 2 22:42:57 PDT 2010


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

           Summary: use of 'vsnprintf' causes backend crash
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: All
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: d235j.1 at gmail.com
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


When using 'vsnprintf' as seen in the attached testcase, the C++ compiler
crashes. This crash does not occur when using the C compiler.

Error output:


Assertion failed: (!Type.isNull() && "builtin va list type not initialized!"),
function DecodeTypeFromStr, file ASTContext.cpp, line 5287.
0  clang             0x00000001013c9052 std::vector<llvm::sys::Path,
std::allocator<llvm::sys::Path>
>::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::sys::Path*,
std::vector<llvm::sys::Path, std::allocator<llvm::sys::Path> > >,
llvm::sys::Path const&) + 11586
1  clang             0x00000001013c9ea3 std::vector<llvm::sys::Path,
std::allocator<llvm::sys::Path>
>::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::sys::Path*,
std::vector<llvm::sys::Path, std::allocator<llvm::sys::Path> > >,
llvm::sys::Path const&) + 15251
2  libSystem.B.dylib 0x00007fff825e135a _sigtramp + 26
3  libSystem.B.dylib 000000000000000000 _sigtramp + 2107763904
4  clang             0x000000010001eaa2
std::vector<llvm::PassRegistrationListener*,
std::allocator<llvm::PassRegistrationListener*>
>::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::PassRegistrationListener**,
std::vector<llvm::PassRegistrationListener*,
std::allocator<llvm::PassRegistrationListener*> > >,
llvm::PassRegistrationListener* const&) + 6786
5  clang             0x000000010071d60d clang::ASTConsumer::~ASTConsumer() +
129373
6  clang             0x00000001007230c8 clang::ASTConsumer::~ASTConsumer() +
152600
7  clang             0x000000010035c5bb
llvm::SmallVectorTemplateBase<clang::Qualifiers, false>::grow(unsigned long) +
79483
8  clang             0x00000001004457c7 llvm::DenseMap<clang::Selector, char,
llvm::DenseMapInfo<clang::Selector>, llvm::DenseMapInfo<char> >::grow(unsigned
int) + 248279
9  clang             0x00000001004c4966
llvm::DenseMap<clang::ObjCPropertyDecl*, char,
llvm::DenseMapInfo<clang::ObjCPropertyDecl*>, llvm::DenseMapInfo<char>
>::grow(unsigned int) + 142454
10 clang             0x0000000100445c08 llvm::DenseMap<clang::Selector, char,
llvm::DenseMapInfo<clang::Selector>, llvm::DenseMapInfo<char> >::grow(unsigned
int) + 249368
11 clang             0x00000001002f1a49
clang::Parser::ParsingClassDefinition::Pop() + 19129
12 clang             0x00000001002ee51b
clang::Parser::ParsingClassDefinition::Pop() + 5515
13 clang             0x00000001002f10a6
clang::Parser::ParsingClassDefinition::Pop() + 16662
14 clang             0x00000001002f0708
clang::Parser::ParsingClassDefinition::Pop() + 14200
15 clang             0x00000001002f10c3
clang::Parser::ParsingClassDefinition::Pop() + 16691
16 clang             0x00000001002f1691
clang::Parser::ParsingClassDefinition::Pop() + 18177
17 clang             0x000000010030fa25
clang::PragmaWeakHandler::~PragmaWeakHandler() + 9989
18 clang             0x000000010030fe66
clang::PragmaWeakHandler::~PragmaWeakHandler() + 11078
19 clang             0x0000000100310354
clang::PragmaWeakHandler::~PragmaWeakHandler() + 12340
20 clang             0x0000000100320d51
llvm::SmallVectorTemplateBase<clang::ParsedTemplateArgument,
false>::grow(unsigned long) + 36929
21 clang             0x00000001002e17b0 clang::Parser::ConsumeAnyToken() +
65424
22 clang             0x00000001003210b1
llvm::SmallVectorTemplateBase<clang::ParsedTemplateArgument,
false>::grow(unsigned long) + 37793
23 clang             0x00000001003214eb
llvm::SmallVectorTemplateBase<clang::ParsedTemplateArgument,
false>::grow(unsigned long) + 38875
24 clang             0x0000000100321f2a
llvm::SmallVectorTemplateBase<clang::ParsedTemplateArgument,
false>::grow(unsigned long) + 41498
25 clang             0x000000010032215a
llvm::SmallVectorTemplateBase<clang::ParsedTemplateArgument,
false>::grow(unsigned long) + 42058
26 clang             0x00000001002cf8bf llvm::IRBuilder<true,
llvm::ConstantFolder, llvm::IRBuilderDefaultInserter<true>
>::CreateGEP(llvm::Value*, llvm::Value*, llvm::Twine const&) + 495
27 clang             0x000000010028b93c
llvm::DenseMap<std::pair<clang::CXXRecordDecl const*, unsigned int>, unsigned
long long, llvm::DenseMapInfo<std::pair<clang::CXXRecordDecl const*, unsigned
int> >, llvm::DenseMapInfo<unsigned long long> >::grow(unsigned int) + 4220
28 clang             0x00000001000545c9 llvm::DenseMap<clang::IdentifierInfo
const*, unsigned int, llvm::DenseMapInfo<clang::IdentifierInfo const*>,
llvm::DenseMapInfo<unsigned int> >::grow(unsigned int) + 7193
29 clang             0x00000001000283ce 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>*) +
2670
30 clang             0x00000001000203f3
std::vector<llvm::PassRegistrationListener*,
std::allocator<llvm::PassRegistrationListener*>
>::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::PassRegistrationListener**,
std::vector<llvm::PassRegistrationListener*,
std::allocator<llvm::PassRegistrationListener*> > >,
llvm::PassRegistrationListener* const&) + 13267
31 clang             0x0000000100026f44 std::vector<std::string,
std::allocator<std::string> >::operator=(std::vector<std::string,
std::allocator<std::string> > const&) + 11604
32 clang             0x000000010001ee18
std::vector<llvm::PassRegistrationListener*,
std::allocator<llvm::PassRegistrationListener*>
>::_M_insert_aux(__gnu_cxx::__normal_iterator<llvm::PassRegistrationListener**,
std::vector<llvm::PassRegistrationListener*,
std::allocator<llvm::PassRegistrationListener*> > >,
llvm::PassRegistrationListener* const&) + 7672
Stack dump:
0.    Program arguments: /usr/local/bin/clang -cc1 -triple
x86_64-apple-darwin10.0.0 -emit-obj -mrelax-all -disable-free -main-file-name
testcase.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.9 -ferror-limit 19 -fmessage-length 220 -stack-protector
1 -fblocks -fexceptions -fdiagnostics-show-option -fcolor-diagnostics -o
testcase.o -x c++ ./testcase.cpp 
1.    ./testcase.cpp:7:66: current parser token ')'
2.    ./testcase.cpp:4:1: parsing function body 'pile_vprintf'
3.    ./testcase.cpp:4:1: in compound statement ('{}')
clang: error: clang frontend command failed due to signal 4 (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