Closed llvmbot closed 12 years ago
Should be fixed by r138838. I'd forgotten that boolean conversions can come from pointers. Sorry for the trouble.
Yeah. Can confirm this. It fixed the problem and my original code now compiles without an error/crash. Thanks for the fast fix again.
Should be fixed by r138838. I'd forgotten that boolean conversions can come from pointers. Sorry for the trouble.
With further efforts and help of the beautiful delta-tool I was able to reduce a test-case even further which still produces the error message/crashes and compiles with g++ but not with clang. If there's something wrong with the test-case please let me know.
#######
namespace optional_detail {
struct optional_tag {
};
template
int main() {
optional
bool foo() {
boost::optional
This small example also fails (with similar stack dump) for latest clang trunk and works for g++ 4.2.1 (Apple Inc. build 5666). The version of Boost being 1.46.1.
Following is the output of the compilation:
tobias$ /Users/tobias/llvm/bin/clang -cc1 -triple x86_64-apple-macosx10.6.8 -emit-obj -disable-free -main-file-name ClangBug.cpp -pic-level 1 -mdisable-fp-elim -masm-verbose -munwind-tables -target-cpu core2 -target-linker-version 123.2 -g -resource-dir /Users/tobias/llvm/bin/../lib/clang/3.0 -isystem /Users/tobias/dev/rep/swift-trunk/3rdParty/Boost/src -D BOOST_FILESYSTEM_VERSION=2 -D BOOST_SYSTEM_NO_DEPRECATED -D BOOST_ALL_NO_LIB -O2 -fdeprecated-macro -ferror-limit 19 -fmessage-length 202 -stack-protector 1 -fblocks -fcxx-exceptions -fexceptions -fdiagnostics-show-option -o Swift/QtUI/UserSearch/ClangBug.o -x c++ Swift/QtUI/UserSearch/ClangBug.cpp
Assertion failed: (FromType->isIntegralOrUnscopedEnumerationType()), function endsWithNarrowing, file SemaInit.cpp, line 2344.
0 clang 0x00000001019ff802 llvm::SmallVectorTemplateBase<llvm_regmatch_t, false>::grow(unsigned long) + 818
1 clang 0x0000000101a00783 llvm::SmallVectorTemplateBase<llvm_regmatch_t, false>::grow(unsigned long) + 4787
2 libSystem.B.dylib 0x00007fff875511ba _sigtramp + 26
3 libSystem.B.dylib 0x00000001025aea80 _sigtramp + 2063980768
4 clang 0x00000001019ffc82 llvm::SmallVectorTemplateBase<llvm_regmatch_t, false>::grow(unsigned long) + 1970
5 clang 0x0000000100591e38 llvm::cast_retty<clang::PointerType, clang::CanQual
Extended Description
LLVM revision: 137864 Clang revision: 137864 Attached are the preprocessed sources; at the end mentioned as /tmp/cc-ZmphkT.ii.
Assertion failed: (FromType->isIntegralOrUnscopedEnumerationType()), function endsWithNarrowing, file SemaInit.cpp, line 2326. 0 clang 0x00000001019e6b12 llvm::SmallVectorTemplateBase<llvm_regmatch_t, false>::grow(unsigned long) + 818 1 clang 0x00000001019e7a93 llvm::SmallVectorTemplateBase<llvm_regmatch_t, false>::grow(unsigned long) + 4787 2 libSystem.B.dylib 0x00007fff875511ba _sigtramp + 26 3 libSystem.B.dylib 0x00007fff5fbec6d0 _sigtramp + 3630806320 4 clang 0x00000001019e6f92 llvm::SmallVectorTemplateBase<llvm_regmatch_t, false>::grow(unsigned long) + 1970 5 clang 0x0000000100581b88 llvm::cast_retty<clang::PointerType, clang::CanQual >::ret_type llvm::cast<clang::PointerType, clang::CanQual >(clang::CanQual const&) + 31704
6 clang 0x000000010058a984 llvm::cast_retty<clang::PointerType, clang::CanQual >::ret_type llvm::cast<clang::PointerType, clang::CanQual >(clang::CanQual const&) + 68052
7 clang 0x000000010058b939 llvm::cast_retty<clang::PointerType, clang::CanQual >::ret_type llvm::cast<clang::PointerType, clang::CanQual >(clang::CanQual const&) + 72073
8 clang 0x000000010058bb8d llvm::cast_retty<clang::PointerType, clang::CanQual >::ret_type llvm::cast<clang::PointerType, clang::CanQual >(clang::CanQual const&) + 72669
9 clang 0x00000001005928ee llvm::cast_retty<clang::PointerType, clang::CanQual >::ret_type llvm::cast<clang::PointerType, clang::CanQual >(clang::CanQual const&) + 100670
10 clang 0x000000010058c337 llvm::cast_retty<clang::PointerType, clang::CanQual >::ret_type llvm::cast<clang::PointerType, clang::CanQual >(clang::CanQual const&) + 74631
11 clang 0x000000010058cf30 llvm::cast_retty<clang::PointerType, clang::CanQual >::ret_type llvm::cast<clang::PointerType, clang::CanQual >(clang::CanQual const&) + 77696
12 clang 0x000000010059415c llvm::cast_retty<clang::PointerType, clang::CanQual >::ret_type llvm::cast<clang::PointerType, clang::CanQual >(clang::CanQual const&) + 106924
13 clang 0x000000010058834c llvm::cast_retty<clang::PointerType, clang::CanQual >::ret_type llvm::cast<clang::PointerType, clang::CanQual >(clang::CanQual const&) + 58268
14 clang 0x0000000100447e37 clang::CodeCompletionBuilder::AddTypedTextChunk(char const) + 119479
15 clang 0x000000010031df67 clang::Parser::LexedMethod::~LexedMethod() + 6551
16 clang 0x0000000100327df2 clang::Parser::LexedMethod::~LexedMethod() + 47138
17 clang 0x000000010033204c clang::Parser::LexedMethod::~LexedMethod() + 88700
18 clang 0x0000000100332135 clang::Parser::LexedMethod::~LexedMethod() + 88933
19 clang 0x000000010036eba2 clang::PragmaOpenCLExtensionHandler::~PragmaOpenCLExtensionHandler() + 11762
20 clang 0x000000010036f7a6 clang::PragmaOpenCLExtensionHandler::~PragmaOpenCLExtensionHandler() + 14838
21 clang 0x000000010036fd59 clang::PragmaOpenCLExtensionHandler::~PragmaOpenCLExtensionHandler() + 16297
22 clang 0x00000001003871ea llvm::SmallVectorTemplateBase<clang::ParsedTemplateArgument, false>::grow(unsigned long) + 49898
23 clang 0x00000001003285ac clang::Parser::LexedMethod::~LexedMethod() + 49116
24 clang 0x00000001003848b8 llvm::SmallVectorTemplateBase<clang::ParsedTemplateArgument, false>::grow(unsigned long) + 39352
25 clang 0x0000000100384d3e llvm::SmallVectorTemplateBase<clang::ParsedTemplateArgument, false>::grow(unsigned long) + 40510
26 clang 0x0000000100389a43 llvm::SmallVectorTemplateBase<clang::ParsedTemplateArgument, false>::grow(unsigned long) + 60227
27 clang 0x000000010033a821 clang::Parser::DeclaratorScopeObj::EnterDeclaratorScope() + 29697
28 clang 0x000000010033b28a clang::Parser::DeclaratorScopeObj::EnterDeclaratorScope() + 32362
29 clang 0x00000001003323e3 clang::Parser::LexedMethod::~LexedMethod() + 89619
30 clang 0x0000000100389528 llvm::SmallVectorTemplateBase<clang::ParsedTemplateArgument, false>::grow(unsigned long) + 58920
31 clang 0x0000000100389e7a llvm::SmallVectorTemplateBase<clang::ParsedTemplateArgument, false>::grow(unsigned long) + 61306
32 clang 0x0000000100318e8b llvm::IRBuilder<true, llvm::ConstantFolder, llvm::IRBuilderDefaultInserter >::CreateGEP(llvm::Value , llvm::Value, llvm::Twine const&) + 859
33 clang 0x00000001002e3d1c llvm::DenseMap<clang::GlobalDecl, long long, llvm::DenseMapInfo, llvm::DenseMapInfo >::grow(unsigned int) + 3852
34 clang 0x000000010002e871 llvm::DenseMap<clang::IdentifierInfo const , unsigned int, llvm::DenseMapInfo<clang::IdentifierInfo const>, llvm::DenseMapInfo >::grow(unsigned int) + 9649
35 clang 0x000000010000b7b3 llvm::raw_ostream::operator<<(char const ) + 1891
36 clang 0x0000000100001f4c
37 clang 0x000000010000a4fe std::vector<std::string, std::allocator >::_M_insert_aux(__gnu_cxx::__normal_iterator<std::string*, std::vector<std::string, std::allocator > >, std::string const&) + 13598
38 clang 0x0000000100001334
39 clang 0x000000000000008a
Stack dump: