[LLVMbugs] [Bug 7851] New: clang++ can't compile CryptoPP 5.6.0

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Aug 9 09:13:36 PDT 2010


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

           Summary: clang++ can't compile CryptoPP 5.6.0
           Product: clang
           Version: trunk
          Platform: PC
        OS/Version: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
        AssignedTo: unassignedclangbugs at nondot.org
        ReportedBy: himmes at idev.de
                CC: llvmbugs at cs.uiuc.edu, dgregor at apple.com


The cryptopp makes heavy use of c++ templates. So this might be a good test for
clang++.
 I use following version:

$ clang++ -v
clang version 2.8 (trunk 110544)
Target: x86_64-apple-darwin10
Thread model: posix

And make of cryptopp fails with following output:

clang++ -DNDEBUG -g -O2 -DCRYPTOPP_DISABLE_ASM -pipe -c 3way.cpp
Assertion failed: (S.Context.hasSameUnqualifiedType(T, E->getRHS()->getType())
&& "comparison with mismatched types"), function AnalyzeComparison, file
SemaChecking.cpp, line 2467.
0  clang             0x000000010130ca82 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&) + 11570
1  clang             0x000000010130d723 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&) + 14803
2  libSystem.B.dylib 0x00007fff8685635a _sigtramp + 26
3  clang             0x00000001006a9ade llvm::DenseMap<clang::DeclarationName,
clang::StoredDeclsList, llvm::DenseMapInfo<clang::DeclarationName>,
llvm::DenseMapInfo<clang::StoredDeclsList>
>::LookupBucketFor(clang::DeclarationName const&,
std::pair<clang::DeclarationName, clang::StoredDeclsList>*&) const + 30
4  libSystem.B.dylib 0x00007fff868d19b4 __pthread_markcancel + 0
5  clang             0x00000001002cdaa2
llvm::cast_retty<clang::ClassTemplateDecl, clang::TemplateDecl*>::ret_type
llvm::cast<clang::ClassTemplateDecl, clang::TemplateDecl*>(clang::TemplateDecl*
const&) + 32914
6  clang             0x00000001002cdd09
llvm::cast_retty<clang::ClassTemplateDecl, clang::TemplateDecl*>::ret_type
llvm::cast<clang::ClassTemplateDecl, clang::TemplateDecl*>(clang::TemplateDecl*
const&) + 33529
7  clang             0x00000001002cdeed
llvm::cast_retty<clang::ClassTemplateDecl, clang::TemplateDecl*>::ret_type
llvm::cast<clang::ClassTemplateDecl, clang::TemplateDecl*>(clang::TemplateDecl*
const&) + 34013
8  clang             0x00000001002cdca8
llvm::cast_retty<clang::ClassTemplateDecl, clang::TemplateDecl*>::ret_type
llvm::cast<clang::ClassTemplateDecl, clang::TemplateDecl*>(clang::TemplateDecl*
const&) + 33432
9  clang             0x00000001002cdbf1
llvm::cast_retty<clang::ClassTemplateDecl, clang::TemplateDecl*>::ret_type
llvm::cast<clang::ClassTemplateDecl, clang::TemplateDecl*>(clang::TemplateDecl*
const&) + 33249
10 clang             0x00000001002cdbf1
llvm::cast_retty<clang::ClassTemplateDecl, clang::TemplateDecl*>::ret_type
llvm::cast<clang::ClassTemplateDecl, clang::TemplateDecl*>(clang::TemplateDecl*
const&) + 33249
11 clang             0x00000001002cdbf1
llvm::cast_retty<clang::ClassTemplateDecl, clang::TemplateDecl*>::ret_type
llvm::cast<clang::ClassTemplateDecl, clang::TemplateDecl*>(clang::TemplateDecl*
const&) + 33249
12 clang             0x00000001002cdbf1
llvm::cast_retty<clang::ClassTemplateDecl, clang::TemplateDecl*>::ret_type
llvm::cast<clang::ClassTemplateDecl, clang::TemplateDecl*>(clang::TemplateDecl*
const&) + 33249
13 clang             0x00000001002cdbf1
llvm::cast_retty<clang::ClassTemplateDecl, clang::TemplateDecl*>::ret_type
llvm::cast<clang::ClassTemplateDecl, clang::TemplateDecl*>(clang::TemplateDecl*
const&) + 33249
14 clang             0x00000001003bf694 clang::LookupResult::getFoundDecl()
const + 836
15 clang             0x00000001003c49be clang::LookupResult::getFoundDecl()
const + 22126
16 clang             0x000000010077027a
clang::PragmaWeakHandler::~PragmaWeakHandler() + 10538
17 clang             0x00000001007704c3
clang::PragmaWeakHandler::~PragmaWeakHandler() + 11123
18 clang             0x0000000100770a53
clang::PragmaWeakHandler::~PragmaWeakHandler() + 12547
19 clang             0x000000010076fd37
clang::PragmaWeakHandler::~PragmaWeakHandler() + 9191
20 clang             0x0000000100772fea
clang::PragmaWeakHandler::~PragmaWeakHandler() + 22170
21 clang             0x000000010076fee3
clang::PragmaWeakHandler::~PragmaWeakHandler() + 9619
22 clang             0x00000001007704c3
clang::PragmaWeakHandler::~PragmaWeakHandler() + 11123
23 clang             0x000000010077094d
clang::PragmaWeakHandler::~PragmaWeakHandler() + 12285
24 clang             0x000000010077f94c
llvm::SmallVectorTemplateCommon<clang::OpaquePtr<0> >::operator[](unsigned int)
+ 30908
25 clang             0x0000000100776fc2
clang::PragmaWeakHandler::~PragmaWeakHandler() + 38514
26 clang             0x0000000100777586
clang::PragmaWeakHandler::~PragmaWeakHandler() + 39990
27 clang             0x00000001007779c1
clang::PragmaWeakHandler::~PragmaWeakHandler() + 41073
28 clang             0x0000000100743d0c clang::Parser::ConsumeAnyToken() +
68124
29 clang             0x000000010078267f
llvm::SmallVectorTemplateCommon<clang::OpaquePtr<0> >::operator[](unsigned int)
+ 42479
30 clang             0x0000000100749829
clang::Parser::DeclaratorScopeObj::EnterDeclaratorScope() + 23209
31 clang             0x0000000100743c57 clang::Parser::ConsumeAnyToken() +
67943
32 clang             0x000000010078267f
llvm::SmallVectorTemplateCommon<clang::OpaquePtr<0> >::operator[](unsigned int)
+ 42479
33 clang             0x00000001007829b8
llvm::SmallVectorTemplateCommon<clang::OpaquePtr<0> >::operator[](unsigned int)
+ 43304
34 clang             0x00000001002adeeb llvm::DenseMap<clang::Stmt*, unsigned
int, llvm::DenseMapInfo<clang::Stmt*>, llvm::DenseMapInfo<unsigned int>
>::grow(unsigned int) + 667
35 clang             0x000000010026a34c
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) + 4204
36 clang             0x000000010004f279 llvm::DenseMap<clang::IdentifierInfo
const*, unsigned int, llvm::DenseMapInfo<clang::IdentifierInfo const*>,
llvm::DenseMapInfo<unsigned int> >::grow(unsigned int) + 6505
37 clang             0x000000010001fcc5 std::_Rb_tree<void const*,
std::pair<void const* const, llvm::PassInfo const*>,
std::_Select1st<std::pair<void const* const, llvm::PassInfo const*> >,
std::less<void const*>, std::allocator<std::pair<void const* const,
llvm::PassInfo const*> > >::_M_insert_unique(std::pair<void const* const,
llvm::PassInfo const*> const&) + 13909
38 clang             0x00000001000269f4 std::vector<std::string,
std::allocator<std::string> >::operator=(std::vector<std::string,
std::allocator<std::string> > const&) + 11316
39 clang             0x000000010001ddf8 std::_Rb_tree<void const*,
std::pair<void const* const, llvm::PassInfo const*>,
std::_Select1st<std::pair<void const* const, llvm::PassInfo const*> >,
std::less<void const*>, std::allocator<std::pair<void const* const,
llvm::PassInfo const*> > >::_M_insert_unique(std::pair<void const* const,
llvm::PassInfo const*> const&) + 6024
Stack dump:
0.    Program arguments: /usr/local/bin/clang -cc1 -triple
x86_64-apple-darwin10.0.0 -emit-obj -disable-free -main-file-name 3way.cpp
-pic-level 1 -mdisable-fp-elim -masm-verbose -munwind-tables -target-cpu core2
-g -resource-dir /usr/local/lib/clang/2.8 -D NDEBUG -D CRYPTOPP_DISABLE_ASM -O2
-ferror-limit 19 -fmessage-length 124 -stack-protector 1 -fblocks -fexceptions
-fdiagnostics-show-option -fcolor-diagnostics -o 3way.o -x c++ 3way.cpp 
1.    ./misc.h:395:3: current parser token 'a'
2.    ./misc.h:45:1 <Spelling=./config.h:75:29>: parsing namespace 'CryptoPP'
3.    ./misc.h:381:1: parsing function body 'CryptoPP::IntToString'
4.    ./misc.h:381:1: in compound statement ('{}')
5.    ./misc.h:392:2: in compound statement ('{}')
clang: error: clang frontend command failed due to signal 6 (use -v to see
invocation)
make: *** [3way.o] Error 250

-- 
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