[LLVMbugs] [Bug 22632] New: Assertion failed: ((Value->isTypeDependent() || Value->isValueDependent())

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Thu Feb 19 02:59:32 PST 2015


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

            Bug ID: 22632
           Summary: Assertion failed: ((Value->isTypeDependent() ||
                    Value->isValueDependent())
           Product: clang
           Version: trunk
          Hardware: Macintosh
                OS: MacOS X
            Status: NEW
          Severity: normal
          Priority: P
         Component: C++
          Assignee: unassignedclangbugs at nondot.org
          Reporter: shadewind at gmail.com
                CC: dgregor at apple.com, llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Compiling a file which worked fine on Clang 3.5 (the one that ships with OS X):

FAILED: /Users/shadewind/dev/llvm/build/bin/clang++    -isystem
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/
-Werror -std=c++11 -I../test/. -I../test/../ext/catch/include -I../test/../src
-I../include -MMD -MT
test/CMakeFiles/rapidcheck_tests.dir/seq/TransformTests.cpp.o -MF
test/CMakeFiles/rapidcheck_tests.dir/seq/TransformTests.cpp.o.d -o
test/CMakeFiles/rapidcheck_tests.dir/seq/TransformTests.cpp.o -c
../test/seq/TransformTests.cpp
Assertion failed: ((Value->isTypeDependent() || Value->isValueDependent()) &&
"Expression template argument must be type- or value-dependent."), function
DeduceNonTypeTemplateArgument, file
../tools/clang/lib/Sema/SemaTemplateDeduction.cpp, line 354.
0  clang-3.7                0x000000010fe8956e
llvm::sys::PrintStackTrace(__sFILE*) + 46
1  clang-3.7                0x000000010fe8a92b
PrintStackTraceSignalHandler(void*) + 27
2  clang-3.7                0x000000010fe8ad75 SignalHandler(int) + 565
3  libsystem_platform.dylib 0x00007fff8d35bf1a _sigtramp + 26
4  clang-3.7                0x00000001131cbab8 guard variable for
isAllowedIDChar(unsigned int, clang::LangOptions const&)::C99AllowedIDChars +
94144
5  clang-3.7                0x000000010fe8a95b raise + 27
6  clang-3.7                0x000000010fe8aa12 abort + 18
7  clang-3.7                0x000000010fe8a9f1 __assert_rtn + 129
8  clang-3.7                0x0000000111d9379b
DeduceNonTypeTemplateArgument(clang::Sema&, clang::NonTypeTemplateParmDecl*,
clang::Expr*, clang::sema::TemplateDeductionInfo&,
llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&) + 267
9  clang-3.7                0x0000000111d94edf
DeduceTemplateArguments(clang::Sema&, clang::TemplateParameterList*,
clang::TemplateArgument const&, clang::TemplateArgument,
clang::sema::TemplateDeductionInfo&,
llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&) + 1839
10 clang-3.7                0x0000000111d9454e
DeduceTemplateArguments(clang::Sema&, clang::TemplateParameterList*,
clang::TemplateArgument const*, unsigned int, clang::TemplateArgument const*,
unsigned int, clang::sema::TemplateDeductionInfo&,
llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&) + 926
11 clang-3.7                0x0000000111d93b0d
DeduceTemplateArguments(clang::Sema&, clang::TemplateParameterList*,
clang::TemplateSpecializationType const*, clang::QualType,
clang::sema::TemplateDeductionInfo&,
llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&) + 461
12 clang-3.7                0x0000000111d564f7
DeduceTemplateArgumentsByTypeMatch(clang::Sema&, clang::TemplateParameterList*,
clang::QualType, clang::QualType, clang::sema::TemplateDeductionInfo&,
llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int, bool,
llvm::SmallVectorImpl<RefParamPartialOrderingComparison>*) + 9639
13 clang-3.7                0x0000000111d94919
DeduceTemplateArguments(clang::Sema&, clang::TemplateParameterList*,
clang::TemplateArgument const&, clang::TemplateArgument,
clang::sema::TemplateDeductionInfo&,
llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&) + 361
14 clang-3.7                0x0000000111d943ac
DeduceTemplateArguments(clang::Sema&, clang::TemplateParameterList*,
clang::TemplateArgument const*, unsigned int, clang::TemplateArgument const*,
unsigned int, clang::sema::TemplateDeductionInfo&,
llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&) + 508
15 clang-3.7                0x0000000111d93b0d
DeduceTemplateArguments(clang::Sema&, clang::TemplateParameterList*,
clang::TemplateSpecializationType const*, clang::QualType,
clang::sema::TemplateDeductionInfo&,
llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&) + 461
16 clang-3.7                0x0000000111d564f7
DeduceTemplateArgumentsByTypeMatch(clang::Sema&, clang::TemplateParameterList*,
clang::QualType, clang::QualType, clang::sema::TemplateDeductionInfo&,
llvm::SmallVectorImpl<clang::DeducedTemplateArgument>&, unsigned int, bool,
llvm::SmallVectorImpl<RefParamPartialOrderingComparison>*) + 9639
17 clang-3.7                0x0000000111d5bd2a
clang::Sema::getMoreSpecializedPartialSpecialization(clang::ClassTemplatePartialSpecializationDecl*,
clang::ClassTemplatePartialSpecializationDecl*, clang::SourceLocation) + 970
18 clang-3.7                0x0000000111da8fc6
clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation,
clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind,
bool) + 1174
19 clang-3.7                0x0000000111e69a06
clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType,
clang::Sema::TypeDiagnoser&) + 1478
20 clang-3.7                0x0000000111e692a6
clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType,
clang::Sema::TypeDiagnoser&) + 86
21 clang-3.7                0x0000000111a33938 bool
clang::Sema::RequireCompleteType<clang::SourceRange>(clang::SourceLocation,
clang::QualType, unsigned int, clang::SourceRange const&) + 104
22 clang-3.7                0x0000000111739447
clang::Sema::RequireCompleteDeclContext(clang::CXXScopeSpec&,
clang::DeclContext*) + 487
23 clang-3.7                0x0000000111cd056d
clang::Sema::CheckTypenameType(clang::ElaboratedTypeKeyword,
clang::SourceLocation, clang::NestedNameSpecifierLoc, clang::IdentifierInfo
const&, clang::SourceLocation) + 445
24 clang-3.7                0x0000000111dc8470 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::RebuildDependentNameType(clang::ElaboratedTypeKeyword,
clang::SourceLocation, clang::NestedNameSpecifierLoc, clang::IdentifierInfo
const*, clang::SourceLocation) + 560
25 clang-3.7                0x0000000111dc6e00 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformDependentNameType(clang::TypeLocBuilder&,
clang::DependentNameTypeLoc) + 304
26 clang-3.7                0x0000000111da34b2 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&,
clang::TypeLoc) + 3538
27 clang-3.7                0x0000000111da2292 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*) + 354
28 clang-3.7                0x0000000111da20c2
clang::Sema::SubstType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName) + 306
29 clang-3.7                0x0000000111defdce
clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(clang::TypedefNameDecl*,
bool) + 238
30 clang-3.7                0x0000000111df1374
clang::TemplateDeclInstantiator::VisitTypedefDecl(clang::TypedefDecl*) + 52
31 clang-3.7                0x0000000111de3257
clang::declvisitor::Base<clang::declvisitor::make_ptr,
clang::TemplateDeclInstantiator, clang::Decl*>::Visit(clang::Decl*) + 1015
32 clang-3.7                0x0000000111da74d0
clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*,
clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&,
clang::TemplateSpecializationKind, bool) + 1536
33 clang-3.7                0x0000000111da93e8
clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation,
clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind,
bool) + 2232
34 clang-3.7                0x0000000111e69a06
clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType,
clang::Sema::TypeDiagnoser&) + 1478
35 clang-3.7                0x0000000111e692a6
clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType,
clang::Sema::TypeDiagnoser&) + 86
36 clang-3.7                0x0000000111a33938 bool
clang::Sema::RequireCompleteType<clang::SourceRange>(clang::SourceLocation,
clang::QualType, unsigned int, clang::SourceRange const&) + 104
37 clang-3.7                0x0000000111739447
clang::Sema::RequireCompleteDeclContext(clang::CXXScopeSpec&,
clang::DeclContext*) + 487
38 clang-3.7                0x0000000111cd056d
clang::Sema::CheckTypenameType(clang::ElaboratedTypeKeyword,
clang::SourceLocation, clang::NestedNameSpecifierLoc, clang::IdentifierInfo
const&, clang::SourceLocation) + 445
39 clang-3.7                0x0000000111dc8470 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::RebuildDependentNameType(clang::ElaboratedTypeKeyword,
clang::SourceLocation, clang::NestedNameSpecifierLoc, clang::IdentifierInfo
const*, clang::SourceLocation) + 560
40 clang-3.7                0x0000000111dc6e00 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformDependentNameType(clang::TypeLocBuilder&,
clang::DependentNameTypeLoc) + 304
41 clang-3.7                0x0000000111da34b2 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&,
clang::TypeLoc) + 3538
42 clang-3.7                0x0000000111da2292 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*) + 354
43 clang-3.7                0x0000000111da39b7 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::QualType) + 167
44 clang-3.7                0x0000000111da38ea
clang::Sema::SubstType(clang::QualType, clang::MultiLevelTemplateArgumentList
const&, clang::SourceLocation, clang::DeclarationName) + 282
45 clang-3.7                0x0000000111cb9cde
clang::Sema::CheckTemplateIdType(clang::TemplateName, clang::SourceLocation,
clang::TemplateArgumentListInfo&) + 1310
46 clang-3.7                0x0000000111db51bc clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::RebuildTemplateSpecializationType(clang::TemplateName,
clang::SourceLocation, clang::TemplateArgumentListInfo&) + 60
47 clang-3.7                0x0000000111db3ae6 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType(clang::TypeLocBuilder&,
clang::TemplateSpecializationTypeLoc, clang::TemplateName) + 406
48 clang-3.7                0x0000000111dc69b8 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType(clang::TypeLocBuilder&,
clang::TemplateSpecializationTypeLoc) + 312
49 clang-3.7                0x0000000111da3395 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&,
clang::TypeLoc) + 3253
50 clang-3.7                0x0000000111da2292 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*) + 354
51 clang-3.7                0x0000000111da39b7 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::QualType) + 167
52 clang-3.7                0x0000000111da38ea
clang::Sema::SubstType(clang::QualType, clang::MultiLevelTemplateArgumentList
const&, clang::SourceLocation, clang::DeclarationName) + 282
53 clang-3.7                0x0000000111cb9cde
clang::Sema::CheckTemplateIdType(clang::TemplateName, clang::SourceLocation,
clang::TemplateArgumentListInfo&) + 1310
54 clang-3.7                0x0000000111db51bc clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::RebuildTemplateSpecializationType(clang::TemplateName,
clang::SourceLocation, clang::TemplateArgumentListInfo&) + 60
55 clang-3.7                0x0000000111db3ae6 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType(clang::TypeLocBuilder&,
clang::TemplateSpecializationTypeLoc, clang::TemplateName) + 406
56 clang-3.7                0x0000000111dc69b8 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType(clang::TypeLocBuilder&,
clang::TemplateSpecializationTypeLoc) + 312
57 clang-3.7                0x0000000111da3395 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&,
clang::TypeLoc) + 3253
58 clang-3.7                0x0000000111dc5847 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformElaboratedType(clang::TypeLocBuilder&,
clang::ElaboratedTypeLoc) + 327
59 clang-3.7                0x0000000111da31ba clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&,
clang::TypeLoc) + 2778
60 clang-3.7                0x0000000111da2292 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*) + 354
61 clang-3.7                0x0000000111da20c2
clang::Sema::SubstType(clang::TypeSourceInfo*,
clang::MultiLevelTemplateArgumentList const&, clang::SourceLocation,
clang::DeclarationName) + 306
62 clang-3.7                0x0000000111defdce
clang::TemplateDeclInstantiator::InstantiateTypedefNameDecl(clang::TypedefNameDecl*,
bool) + 238
63 clang-3.7                0x0000000111df1374
clang::TemplateDeclInstantiator::VisitTypedefDecl(clang::TypedefDecl*) + 52
64 clang-3.7                0x0000000111de3257
clang::declvisitor::Base<clang::declvisitor::make_ptr,
clang::TemplateDeclInstantiator, clang::Decl*>::Visit(clang::Decl*) + 1015
65 clang-3.7                0x0000000111dfb982
clang::Sema::SubstDecl(clang::Decl*, clang::DeclContext*,
clang::MultiLevelTemplateArgumentList const&) + 162
66 clang-3.7                0x0000000111dbc144 (anonymous
namespace)::TemplateInstantiator::TransformDefinition(clang::SourceLocation,
clang::Decl*) + 84
67 clang-3.7                0x0000000111db80ef clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformDeclStmt(clang::DeclStmt*) + 207
68 clang-3.7                0x0000000111daa9e5 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) + 597
69 clang-3.7                0x0000000111dc063c clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*,
bool) + 236
70 clang-3.7                0x0000000111db7fda clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformCompoundStmt(clang::CompoundStmt*)
+ 42
71 clang-3.7                0x0000000111daa983 clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformStmt(clang::Stmt*) + 499
72 clang-3.7                0x0000000111daa761
clang::Sema::SubstStmt(clang::Stmt*, clang::MultiLevelTemplateArgumentList
const&) + 129
73 clang-3.7                0x0000000111e016b5
clang::Sema::InstantiateFunctionDefinition(clang::SourceLocation,
clang::FunctionDecl*, bool, bool) + 3397
74 clang-3.7                0x0000000111e02b87
clang::Sema::PerformPendingInstantiations(bool) + 1015
75 clang-3.7                0x00000001116fbd7a
clang::Sema::ActOnEndOfTranslationUnit() + 1098
76 clang-3.7                0x00000001114a4f32
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 642
77 clang-3.7                0x00000001113f637c clang::ParseAST(clang::Sema&,
bool, bool) + 988
78 clang-3.7                0x00000001102e3d6a
clang::ASTFrontendAction::ExecuteAction() + 522
79 clang-3.7                0x00000001108dac3f
clang::CodeGenAction::ExecuteAction() + 3999
80 clang-3.7                0x00000001102e32e8 clang::FrontendAction::Execute()
+ 120
81 clang-3.7                0x0000000110274f4c
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 1020
82 clang-3.7                0x0000000110354341
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 3201
83 clang-3.7                0x000000010df18030 cc1_main(llvm::ArrayRef<char
const*>, char const*, void*) + 2496
84 clang-3.7                0x000000010df0b26b
ExecuteCC1Tool(llvm::ArrayRef<char const*>, llvm::StringRef) + 171
85 clang-3.7                0x000000010df0a0da main + 1274
86 libdyld.dylib            0x00007fff9522d5c9 start + 1
87 libdyld.dylib            0x0000000000000042 start + 1792879226
Stack dump:
0.    Program arguments: /Users/shadewind/dev/llvm/build/bin/clang-3.7 -cc1
-triple x86_64-apple-macosx10.10.0 -emit-obj -mrelax-all -disable-free
-main-file-name TransformTests.cpp -mrelocation-model pic -pic-level 2
-mthread-model posix -mdisable-fp-elim -masm-verbose -munwind-tables
-target-cpu core2 -target-linker-version 241.9 -dwarf-column-info
-coverage-file
/Users/shadewind/dev/rapidcheck/build_templight/test/CMakeFiles/rapidcheck_tests.dir/seq/TransformTests.cpp.o
-resource-dir /Users/shadewind/dev/llvm/build/bin/../lib/clang/3.7.0
-dependency-file
test/CMakeFiles/rapidcheck_tests.dir/seq/TransformTests.cpp.o.d -MT
test/CMakeFiles/rapidcheck_tests.dir/seq/TransformTests.cpp.o -isystem
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/include/c++/v1/
-I ../test/. -I ../test/../ext/catch/include -I ../test/../src -I ../include
-stdlib=libc++ -Werror -std=c++11 -fdeprecated-macro -fdebug-compilation-dir
/Users/shadewind/dev/rapidcheck/build_templight -ferror-limit 19
-fmessage-length 0 -stack-protector 1 -mstackrealign -fblocks
-fobjc-runtime=macosx-10.10.0 -fencode-extended-block-signature
-fcxx-exceptions -fexceptions -fmax-type-align=16 -fdiagnostics-show-option -o
test/CMakeFiles/rapidcheck_tests.dir/seq/TransformTests.cpp.o -x c++
../test/seq/TransformTests.cpp 
1.    <eof> parser at end of file
2.    ../include/rapidcheck/seq/Transform.hpp:254:1: instantiating function
definition 'map'
clang-3.7: error: unable to execute command: Illegal instruction: 4
clang-3.7: error: clang frontend command failed due to signal (use -v to see
invocation)
clang version 3.7.0 (trunk 229834)
Target: x86_64-apple-darwin14.1.0
Thread model: posix
clang-3.7: note: diagnostic msg: PLEASE submit a bug report to
http://llvm.org/bugs/ and include the crash backtrace, preprocessed source, and
associated run script.
clang-3.7: note: diagnostic msg: 
********************

PLEASE ATTACH THE FOLLOWING FILES TO THE BUG REPORT:
Preprocessed source(s) and associated run script(s) are located at:
clang-3.7: note: diagnostic msg:
/var/folders/qq/y5p_nqhd155flw22z1tds8l80000gn/T/TransformTests-0c98fe.cpp
clang-3.7: note: diagnostic msg:
/var/folders/qq/y5p_nqhd155flw22z1tds8l80000gn/T/TransformTests-0c98fe.sh
clang-3.7: note: diagnostic msg: 




I'm attaching the preprocessed source and here is the run script:

"/Users/shadewind/dev/llvm/build/bin/clang-3.7" "-cc1" "-triple"
"x86_64-apple-macosx10.10.0" "-emit-obj" "-mrelax-all" "-disable-free"
"-main-file-name" "TransformTests.cpp" "-mrelocation-model" "pic" "-pic-level"
"2" "-mthread-model" "posix" "-mdisable-fp-elim" "-masm-verbose"
"-munwind-tables" "-target-cpu" "core2" "-target-linker-version" "241.9"
"-dwarf-column-info" "-stdlib=libc++" "-Werror" "-std=c++11"
"-fdeprecated-macro" "-ferror-limit" "19" "-fmessage-length" "0"
"-stack-protector" "1" "-mstackrealign" "-fblocks"
"-fobjc-runtime=macosx-10.10.0" "-fencode-extended-block-signature"
"-fcxx-exceptions" "-fexceptions" "-fmax-type-align=16"
"-fdiagnostics-show-option" "-x" "c++" "TransformTests-0c98fe.cpp"

-- 
You are receiving this mail because:
You are on the CC list for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-bugs/attachments/20150219/f10b1b52/attachment.html>


More information about the llvm-bugs mailing list