[LLVMbugs] [Bug 20228] New: Possible use after free in clang::InitializationSequence::InitializeFrom (r212372)

bugzilla-daemon at llvm.org bugzilla-daemon at llvm.org
Mon Jul 7 11:39:17 PDT 2014


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

            Bug ID: 20228
           Summary: Possible use after free in
                    clang::InitializationSequence::InitializeFrom
                    (r212372)
           Product: clang
           Version: trunk
          Hardware: PC
                OS: Linux
            Status: NEW
          Severity: normal
          Priority: P
         Component: -New Bugs
          Assignee: unassignedclangbugs at nondot.org
          Reporter: ismail at donmez.ws
                CC: llvmbugs at cs.uiuc.edu
    Classification: Unclassified

Created attachment 12744
  --> http://llvm.org/bugs/attachment.cgi?id=12744&action=edit
Testcase

To reproduce this you have to use MALLOC_PERTURB_ on Linux so that glibc
invalidates free()'d pointers. To reproduce:

[~]> export MALLOC_PERTURB_=69
[~]> /opt/clang/bin/clang++ -O0 -std=c++11 -fsyntax-only -D__STDC_FORMAT_MACROS
-c testcase.ii
0  libLLVMSupport.so       0x00007ffff5426215
llvm::sys::PrintStackTrace(_IO_FILE*) + 37
1  libLLVMSupport.so       0x00007ffff5426883
2  libc.so.6               0x00007ffff37938d0
3  libclangSema.so         0x00007ffff103c79c
clang::InitializationSequence::InitializeFrom(clang::Sema&,
clang::InitializedEntity const&, clang::InitializationKind const&,
llvm::MutableArrayRef<clang::Expr*>, bool) + 92
4  libclangSema.so         0x00007ffff103c73d
clang::InitializationSequence::InitializationSequence(clang::Sema&,
clang::InitializedEntity const&, clang::InitializationKind const&,
llvm::MutableArrayRef<clang::Expr*>, bool) + 429
5  libclangSema.so         0x00007ffff100ccec
clang::Sema::BuildTypeTrait(clang::TypeTrait, clang::SourceLocation,
llvm::ArrayRef<clang::TypeSourceInfo*>, clang::SourceLocation) + 3804
6  libclangSema.so         0x00007ffff116b87a
7  libclangSema.so         0x00007ffff1161e7d
8  libclangSema.so         0x00007ffff1162b68
9  libclangSema.so         0x00007ffff1156d4c
10 libclangSema.so         0x00007ffff115550f
11 libclangSema.so         0x00007ffff115aa94
clang::Sema::SubstBaseSpecifiers(clang::CXXRecordDecl*, clang::CXXRecordDecl*,
clang::MultiLevelTemplateArgumentList const&) + 820
12 libclangSema.so         0x00007ffff115b14b
clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*,
clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&,
clang::TemplateSpecializationKind, bool) + 731
13 libclangSema.so         0x00007ffff115cb3d
clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation,
clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind,
bool) + 1821
14 libclangSema.so         0x00007ffff11a522b
clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType,
clang::Sema::TypeDiagnoser&) + 635
15 libclangSema.so         0x00007ffff11a4ee0
clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType,
clang::Sema::TypeDiagnoser&) + 16
16 libclangSema.so         0x00007ffff0e42ac6
clang::Sema::RequireCompleteDeclContext(clang::CXXScopeSpec&,
clang::DeclContext*) + 278
17 libclangSema.so         0x00007ffff0fa9c81
clang::Sema::BuildQualifiedDeclarationNameExpr(clang::CXXScopeSpec&,
clang::DeclarationNameInfo const&, bool, clang::TypeSourceInfo**) + 81
18 libclangSema.so         0x00007ffff116bda3
19 libclangSema.so         0x00007ffff1161e7d
20 libclangSema.so         0x00007ffff1162b68
21 libclangSema.so         0x00007ffff1156d4c
22 libclangSema.so         0x00007ffff115550f
23 libclangSema.so         0x00007ffff115aa94
clang::Sema::SubstBaseSpecifiers(clang::CXXRecordDecl*, clang::CXXRecordDecl*,
clang::MultiLevelTemplateArgumentList const&) + 820
24 libclangSema.so         0x00007ffff115b14b
clang::Sema::InstantiateClass(clang::SourceLocation, clang::CXXRecordDecl*,
clang::CXXRecordDecl*, clang::MultiLevelTemplateArgumentList const&,
clang::TemplateSpecializationKind, bool) + 731
25 libclangSema.so         0x00007ffff115cb3d
clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation,
clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind,
bool) + 1821
26 libclangSema.so         0x00007ffff11a522b
clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType,
clang::Sema::TypeDiagnoser&) + 635
27 libclangSema.so         0x00007ffff11a4ee0
clang::Sema::RequireCompleteType(clang::SourceLocation, clang::QualType,
clang::Sema::TypeDiagnoser&) + 16
28 libclangSema.so         0x00007ffff0e42ac6
clang::Sema::RequireCompleteDeclContext(clang::CXXScopeSpec&,
clang::DeclContext*) + 278
29 libclangSema.so         0x00007ffff0fa9c81
clang::Sema::BuildQualifiedDeclarationNameExpr(clang::CXXScopeSpec&,
clang::DeclarationNameInfo const&, bool, clang::TypeSourceInfo**) + 81
30 libclangSema.so         0x00007ffff116bda3
31 libclangSema.so         0x00007ffff116a6a3
32 libclangSema.so         0x00007ffff115d8f1
clang::Sema::SubstExpr(clang::Expr*, clang::MultiLevelTemplateArgumentList
const&) + 65
33 libclangSema.so         0x00007ffff117f1a5
34 libclangSema.so         0x00007ffff117eada
clang::Sema::InstantiateExceptionSpec(clang::SourceLocation,
clang::FunctionDecl*) + 522
35 libclangSema.so         0x00007ffff0f980c9
clang::Sema::ResolveExceptionSpec(clang::SourceLocation,
clang::FunctionProtoType const*) + 121
36 libclangSema.so         0x00007ffff0fb56dc
clang::Sema::MarkFunctionReferenced(clang::SourceLocation,
clang::FunctionDecl*) + 1228
37 libclangSema.so         0x00007ffff0f553bc
clang::Sema::BuildCXXConstructExpr(clang::SourceLocation, clang::QualType,
clang::CXXConstructorDecl*, llvm::MutableArrayRef<clang::Expr*>, bool, bool,
bool, unsigned int, clang::SourceRange) + 332
38 libclangSema.so         0x00007ffff10491b6
39 libclangSema.so         0x00007ffff1041327
clang::InitializationSequence::Perform(clang::Sema&, clang::InitializedEntity
const&, clang::InitializationKind const&, llvm::MutableArrayRef<clang::Expr*>,
clang::QualType*) + 6263
40 libclangSema.so         0x00007ffff0eef08b
clang::Sema::AddInitializerToDecl(clang::Decl*, clang::Expr*, bool, bool) +
5291
41 libclangParse.so        0x00007ffff142982d
clang::Parser::ParseDeclarationAfterDeclaratorAndAttributes(clang::Declarator&,
clang::Parser::ParsedTemplateInfo const&, clang::Parser::ForRangeInit*) + 3485
42 libclangParse.so        0x00007ffff1427a11
clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, unsigned int, bool,
clang::SourceLocation*, clang::Parser::ForRangeInit*) + 1665
43 libclangParse.so        0x00007ffff142440c
clang::Parser::ParseSimpleDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&,
unsigned int, clang::SourceLocation&,
clang::Parser::ParsedAttributesWithRange&, bool, clang::Parser::ForRangeInit*)
+ 764
44 libclangParse.so        0x00007ffff14240b5
clang::Parser::ParseDeclaration(llvm::SmallVector<clang::Stmt*, 32u>&, unsigned
int, clang::SourceLocation&, clang::Parser::ParsedAttributesWithRange&) + 837
45 libclangParse.so        0x00007ffff1476ea4
clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*,
32u>&, bool, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&)
+ 2660
46 libclangParse.so        0x00007ffff14763d0
clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*,
32u>&, bool, clang::SourceLocation*) + 144
47 libclangParse.so        0x00007ffff147c8bf
clang::Parser::ParseCompoundStatementBody(bool) + 1423
48 libclangParse.so        0x00007ffff147677a
clang::Parser::ParseStatementOrDeclarationAfterAttributes(llvm::SmallVector<clang::Stmt*,
32u>&, bool, clang::SourceLocation*, clang::Parser::ParsedAttributesWithRange&)
+ 826
49 libclangParse.so        0x00007ffff14763d0
clang::Parser::ParseStatementOrDeclaration(llvm::SmallVector<clang::Stmt*,
32u>&, bool, clang::SourceLocation*) + 144
50 libclangParse.so        0x00007ffff147c8bf
clang::Parser::ParseCompoundStatementBody(bool) + 1423
51 libclangParse.so        0x00007ffff147d1b6
clang::Parser::ParseFunctionStatementBody(clang::Decl*,
clang::Parser::ParseScope&) + 182
52 libclangParse.so        0x00007ffff148ec83
clang::Parser::ParseFunctionDefinition(clang::ParsingDeclarator&,
clang::Parser::ParsedTemplateInfo const&, clang::Parser::LateParsedAttrList*) +
1859
53 libclangParse.so        0x00007ffff1427888
clang::Parser::ParseDeclGroup(clang::ParsingDeclSpec&, unsigned int, bool,
clang::SourceLocation*, clang::Parser::ForRangeInit*) + 1272
54 libclangParse.so        0x00007ffff148e384
clang::Parser::ParseDeclOrFunctionDefInternal(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec&, clang::AccessSpecifier) + 740
55 libclangParse.so        0x00007ffff148de90
clang::Parser::ParseDeclarationOrFunctionDefinition(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*, clang::AccessSpecifier) + 384
56 libclangParse.so        0x00007ffff148d31e
clang::Parser::ParseExternalDeclaration(clang::Parser::ParsedAttributesWithRange&,
clang::ParsingDeclSpec*) + 3166
57 libclangParse.so        0x00007ffff148c636
clang::Parser::ParseTopLevelDecl(clang::OpaquePtr<clang::DeclGroupRef>&) + 390
58 libclangParse.so        0x00007ffff14187c6 clang::ParseAST(clang::Sema&,
bool, bool) + 406
59 libclangFrontend.so     0x00007ffff45a0cd9 clang::FrontendAction::Execute()
+ 57
60 libclangFrontend.so     0x00007ffff4575aa3
clang::CompilerInstance::ExecuteAction(clang::FrontendAction&) + 787
61 libclangFrontendTool.so 0x00007ffff430afc2
clang::ExecuteCompilerInvocation(clang::CompilerInstance*) + 3394
62 clang-3.5               0x000000000040c2dc cc1_main(char const**, char
const**, char const*, void*) + 540
63 clang-3.5               0x0000000000408a0b main + 1099
64 libc.so.6               0x00007ffff377fbe5 __libc_start_main + 245
65 clang-3.5               0x0000000000408469
Stack dump:
0.      Program arguments: /opt/clang/bin/clang-3.5 -cc1 -triple
x86_64-suse-linux -fsyntax-only -disable-free -disable-llvm-verifier
-main-file-name testcase.ii -mrelocation-model static -mdisable-fp-elim
-fmath-errno -masm-verbose -mconstructor-aliases -munwind-tables
-fuse-init-array -target-cpu x86-64 -resource-dir
/opt/clang/bin/../lib64/clang/3.5.0 -O0 -std=c++11 -fdeprecated-macro
-fdebug-compilation-dir /home/ismail -ferror-limit 19 -fmessage-length 104
-mstackrealign -fobjc-runtime=gcc -fcxx-exceptions -fexceptions
-fdiagnostics-show-option -fcolor-diagnostics -x c++-cpp-output testcase.ii
1.     
/home/abuild/rpmbuild/BUILD/libcxx/test/utilities/tuple/tuple.tuple/tuple.rel/eq.pass.cpp:92:31:
current parser token ';'
2.     
/home/abuild/rpmbuild/BUILD/libcxx/test/utilities/tuple/tuple.tuple/tuple.rel/eq.pass.cpp:23:1:
parsing function body 'main'
3.     
/home/abuild/rpmbuild/BUILD/libcxx/test/utilities/tuple/tuple.tuple/tuple.rel/eq.pass.cpp:23:1:
in compound statement ('{}')
4.     
/home/abuild/rpmbuild/BUILD/libcxx/test/utilities/tuple/tuple.tuple/tuple.rel/eq.pass.cpp:88:5:
in compound statement ('{}')
clang-3.5: error: unable to execute command: Segmentation fault
clang-3.5: error: clang frontend command failed due to signal (use -v to see
invocation)
clang version 3.5.0 (trunk 212372)
Target: x86_64-suse-linux
Thread model: posix
clang-3.5: 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.5: note: diagnostic msg: Error generating preprocessed source(s) - no
preprocessable inputs.


Valgrind also shows a use-after-free:

==31472== Invalid read of size 8
==31472==    at 0xBAF3794:
clang::InitializationSequence::InitializeFrom(clang::Sema&,
clang::InitializedEntity const&, clang::InitializationKind const&,
llvm::MutableArrayRef<clang::Expr*>, bool) (Expr.h:124)
==31472==    by 0xBAF373C:
clang::InitializationSequence::InitializationSequence(clang::Sema&,
clang::InitializedEntity const&, clang::InitializationKind const&,
llvm::MutableArrayRef<clang::Expr*>, bool) (SemaInit.cpp:4536)
==31472==    by 0xBAC3CEB: clang::Sema::BuildTypeTrait(clang::TypeTrait,
clang::SourceLocation, llvm::ArrayRef<clang::TypeSourceInfo*>,
clang::SourceLocation) (SemaExprCXX.cpp:3671)
==31472==    by 0xBC22879: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTypeTraitExpr(clang::TypeTraitExpr*)
(TreeTransform.h:2305)
==31472==    by 0xBC18E7C: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateArgument(clang::TemplateArgumentLoc
const&, clang::TemplateArgumentLoc&) (TreeTransform.h:3360)
==31472==    by 0xBC19B67: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType(clang::TypeLocBuilder&,
clang::TemplateSpecializationTypeLoc, clang::TemplateName)
(TreeTransform.h:3541)
==31472==    by 0xBC0DD4B: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&,
clang::TypeLoc) (TreeTransform.h:4880)
==31472==    by 0xBC0C50E: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*)
(TreeTransform.h:3586)
==31472==    by 0xBC11A93:
clang::Sema::SubstBaseSpecifiers(clang::CXXRecordDecl*, clang::CXXRecordDecl*,
clang::MultiLevelTemplateArgumentList const&)
(SemaTemplateInstantiate.cpp:1475)
==31472==    by 0xBC1214A: clang::Sema::InstantiateClass(clang::SourceLocation,
clang::CXXRecordDecl*, clang::CXXRecordDecl*,
clang::MultiLevelTemplateArgumentList const&,
clang::TemplateSpecializationKind, bool) (SemaTemplateInstantiate.cpp:1945)
==31472==    by 0xBC13B3C:
clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation,
clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind,
bool) (SemaTemplateInstantiate.cpp:2354)
==31472==    by 0xBC5C22A:
clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType,
clang::Sema::TypeDiagnoser&) (SemaType.cpp:5279)
==31472==  Address 0xf89c688 is 72 bytes inside a block of size 160 free'd
==31472==    at 0x4C29B7E: realloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==31472==    by 0x7637327: llvm::SmallVectorBase::grow_pod(void*, unsigned
long, unsigned long) (SmallVector.cpp:34)
==31472==    by 0xBAC396A: clang::Sema::BuildTypeTrait(clang::TypeTrait,
clang::SourceLocation, llvm::ArrayRef<clang::TypeSourceInfo*>,
clang::SourceLocation) (SmallVector.h:82)
==31472==    by 0xBC22879: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTypeTraitExpr(clang::TypeTraitExpr*)
(TreeTransform.h:2305)
==31472==    by 0xBC18E7C: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateArgument(clang::TemplateArgumentLoc
const&, clang::TemplateArgumentLoc&) (TreeTransform.h:3360)
==31472==    by 0xBC19B67: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType(clang::TypeLocBuilder&,
clang::TemplateSpecializationTypeLoc, clang::TemplateName)
(TreeTransform.h:3541)
==31472==    by 0xBC0DD4B: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&,
clang::TypeLoc) (TreeTransform.h:4880)
==31472==    by 0xBC0C50E: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*)
(TreeTransform.h:3586)
==31472==    by 0xBC11A93:
clang::Sema::SubstBaseSpecifiers(clang::CXXRecordDecl*, clang::CXXRecordDecl*,
clang::MultiLevelTemplateArgumentList const&)
(SemaTemplateInstantiate.cpp:1475)
==31472==    by 0xBC1214A: clang::Sema::InstantiateClass(clang::SourceLocation,
clang::CXXRecordDecl*, clang::CXXRecordDecl*,
clang::MultiLevelTemplateArgumentList const&,
clang::TemplateSpecializationKind, bool) (SemaTemplateInstantiate.cpp:1945)
==31472==    by 0xBC13B3C:
clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation,
clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind,
bool) (SemaTemplateInstantiate.cpp:2354)
==31472==    by 0xBC5C22A:
clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType,
clang::Sema::TypeDiagnoser&) (SemaType.cpp:5279)
==31472==
==31472== Invalid read of size 1
==31472==    at 0xADCE984:
clang::Expr::hasAnyTypeDependentArguments(llvm::ArrayRef<clang::Expr*>)
(Expr.h:166)
==31472==    by 0xBAF3808:
clang::InitializationSequence::InitializeFrom(clang::Sema&,
clang::InitializedEntity const&, clang::InitializationKind const&,
llvm::MutableArrayRef<clang::Expr*>, bool) (SemaInit.cpp:4570)
==31472==    by 0xBAF373C:
clang::InitializationSequence::InitializationSequence(clang::Sema&,
clang::InitializedEntity const&, clang::InitializationKind const&,
llvm::MutableArrayRef<clang::Expr*>, bool) (SemaInit.cpp:4536)
==31472==    by 0xBAC3CEB: clang::Sema::BuildTypeTrait(clang::TypeTrait,
clang::SourceLocation, llvm::ArrayRef<clang::TypeSourceInfo*>,
clang::SourceLocation) (SemaExprCXX.cpp:3671)
==31472==    by 0xBC22879: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTypeTraitExpr(clang::TypeTraitExpr*)
(TreeTransform.h:2305)
==31472==    by 0xBC18E7C: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateArgument(clang::TemplateArgumentLoc
const&, clang::TemplateArgumentLoc&) (TreeTransform.h:3360)
==31472==    by 0xBC19B67: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType(clang::TypeLocBuilder&,
clang::TemplateSpecializationTypeLoc, clang::TemplateName)
(TreeTransform.h:3541)
==31472==    by 0xBC0DD4B: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&,
clang::TypeLoc) (TreeTransform.h:4880)
==31472==    by 0xBC0C50E: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*)
(TreeTransform.h:3586)
==31472==    by 0xBC11A93:
clang::Sema::SubstBaseSpecifiers(clang::CXXRecordDecl*, clang::CXXRecordDecl*,
clang::MultiLevelTemplateArgumentList const&)
(SemaTemplateInstantiate.cpp:1475)
==31472==    by 0xBC1214A: clang::Sema::InstantiateClass(clang::SourceLocation,
clang::CXXRecordDecl*, clang::CXXRecordDecl*,
clang::MultiLevelTemplateArgumentList const&,
clang::TemplateSpecializationKind, bool) (SemaTemplateInstantiate.cpp:1945)
==31472==    by 0xBC13B3C:
clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation,
clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind,
bool) (SemaTemplateInstantiate.cpp:2354)
==31472==  Address 0xf89c681 is 65 bytes inside a block of size 160 free'd
==31472==    at 0x4C29B7E: realloc (in
/usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
==31472==    by 0x7637327: llvm::SmallVectorBase::grow_pod(void*, unsigned
long, unsigned long) (SmallVector.cpp:34)
==31472==    by 0xBAC396A: clang::Sema::BuildTypeTrait(clang::TypeTrait,
clang::SourceLocation, llvm::ArrayRef<clang::TypeSourceInfo*>,
clang::SourceLocation) (SmallVector.h:82)
==31472==    by 0xBC22879: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTypeTraitExpr(clang::TypeTraitExpr*)
(TreeTransform.h:2305)
==31472==    by 0xBC18E7C: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateArgument(clang::TemplateArgumentLoc
const&, clang::TemplateArgumentLoc&) (TreeTransform.h:3360)
==31472==    by 0xBC19B67: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformTemplateSpecializationType(clang::TypeLocBuilder&,
clang::TemplateSpecializationTypeLoc, clang::TemplateName)
(TreeTransform.h:3541)
==31472==    by 0xBC0DD4B: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeLocBuilder&,
clang::TypeLoc) (TreeTransform.h:4880)
==31472==    by 0xBC0C50E: clang::TreeTransform<(anonymous
namespace)::TemplateInstantiator>::TransformType(clang::TypeSourceInfo*)
(TreeTransform.h:3586)
==31472==    by 0xBC11A93:
clang::Sema::SubstBaseSpecifiers(clang::CXXRecordDecl*, clang::CXXRecordDecl*,
clang::MultiLevelTemplateArgumentList const&)
(SemaTemplateInstantiate.cpp:1475)
==31472==    by 0xBC1214A: clang::Sema::InstantiateClass(clang::SourceLocation,
clang::CXXRecordDecl*, clang::CXXRecordDecl*,
clang::MultiLevelTemplateArgumentList const&,
clang::TemplateSpecializationKind, bool) (SemaTemplateInstantiate.cpp:1945)
==31472==    by 0xBC13B3C:
clang::Sema::InstantiateClassTemplateSpecialization(clang::SourceLocation,
clang::ClassTemplateSpecializationDecl*, clang::TemplateSpecializationKind,
bool) (SemaTemplateInstantiate.cpp:2354)
==31472==    by 0xBC5C22A:
clang::Sema::RequireCompleteTypeImpl(clang::SourceLocation, clang::QualType,
clang::Sema::TypeDiagnoser&) (SemaType.cpp:5279)

-- 
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/20140707/5bce75e3/attachment.html>


More information about the llvm-bugs mailing list