https://llvm.org/bugs/show_bug.cgi?id=26237
Bug ID: 26237 Summary: Broken canonical decl of FunctionTemplateDecl. Product: clang Version: trunk Hardware: PC OS: All Status: NEW Severity: normal Priority: P Component: Modules Assignee: unassignedclangb...@nondot.org Reporter: vvasi...@cern.ch CC: dgre...@apple.com, llvm-bugs@lists.llvm.org Classification: Unclassified I am stuck with reducing this issue. It still depends on STL and I am unable to reduce it further. Any ideas would be greatly appreciated. =============================== GDB ==================================== (gdb) bt #0 0x00007ffff06ea6d0 in ?? () #1 0x000000000224235d in clang::Decl::getCanonicalDecl (this=0x7ffff00000f8) at /home/vvassilev/workspace/llvm-git/src/tools/clang/include/clang/AST/DeclBase.h:750 #2 0x0000000002242378 in clang::Decl::isCanonicalDecl (this=0x7ffff00000f8) at /home/vvassilev/workspace/llvm-git/src/tools/clang/include/clang/AST/DeclBase.h:754 #3 0x0000000003517f22 in clang::ASTDeclWriter::AddTemplateSpecializations<clang::ClassTemplateDecl> ( this=0x7ffff6baae90, D=0x7ffff0263bb8) at /home/vvassilev/workspace/llvm-git/src/tools/clang/lib/Serialization/ASTWriterDecl.cpp:219 #4 0x000000000350d654 in clang::ASTDeclWriter::VisitClassTemplateDecl (this=0x7ffff6baae90, D=0x7ffff0263bb8) at /home/vvassilev/workspace/llvm-git/src/tools/clang/lib/Serialization/ASTWriterDecl.cpp:1286 #5 0x00000000035145c7 in clang::declvisitor::Base<clang::declvisitor::make_ptr, clang::ASTDeclWriter, void>::Visit ( this=0x7ffff6baae90, D=0x7ffff0263bb8) at /home/vvassilev/workspace/llvm-git/obj/tools/clang/include/clang/AST/DeclNodes.inc:189 #6 0x0000000003507912 in clang::ASTDeclWriter::Visit (this=0x7ffff6baae90, D=0x7ffff0263bb8) at /home/vvassilev/workspace/llvm-git/src/tools/clang/lib/Serialization/ASTWriterDecl.cpp:258 #7 0x0000000003511c7a in clang::ASTWriter::WriteDecl (this=0x7ffff00321e8, Context=..., D=0x7ffff0263bb8) at /home/vvassilev/workspace/llvm-git/src/tools/clang/lib/Serialization/ASTWriterDecl.cpp:2130 #8 0x00000000034cb855 in clang::ASTWriter::WriteASTCore (this=0x7ffff00321e8, SemaRef=..., isysroot=..., OutputFile="/home/vvassilev/workspace/root/cmake_obj/include/pcms/S04FLK6KY0X1/TCollectionProxyFactory.h-AJZOSBS4YJ7J.pcm", WritingModule=0x7ffff0025890) at /home/vvassilev/workspace/llvm-git/src/tools/clang/lib/Serialization/ASTWriter.cpp:4421 #9 0x00000000034c96a6 in clang::ASTWriter::WriteAST (this=0x7ffff00321e8, SemaRef=..., OutputFile="/home/vvassilev/workspace/root/cmake_obj/include/pcms/S04FLK6KY0X1/TCollectionProxyFactory.h-AJZOSBS4YJ7J.pcm", WritingModule=0x7ffff0025890, isysroot=..., hasErrors=false) at /home/vvassilev/workspace/llvm-git/src/tools/clang/lib/Serialization/ASTWriter.cpp:4081 #10 0x00000000035310eb in clang::PCHGenerator::HandleTranslationUnit (this=0x7ffff0032140, Ctx=...) at /home/vvassilev/workspace/llvm-git/src/tools/clang/lib/Serialization/GeneratePCH.cpp:54 #11 0x00000000027223d8 in clang::MultiplexConsumer::HandleTranslationUnit (this=0x7ffff0032f70, Ctx=...) at /home/vvassilev/workspace/llvm-git/src/tools/clang/lib/Frontend/MultiplexConsumer.cpp:286 #12 0x00000000032d67e3 in clang::ParseAST (S=..., PrintStats=false, SkipFunctionBodies=false) at /home/vvassilev/workspace/llvm-git/src/tools/clang/lib/Parse/ParseAST.cpp:168 #13 0x00000000026fb0d2 in clang::ASTFrontendAction::ExecuteAction (this=0x7fffffffa1a0) at /home/vvassilev/workspace/llvm-git/src/tools/clang/lib/Frontend/FrontendAction.cpp:539 #14 0x00000000026fab97 in clang::FrontendAction::Execute (this=0x7fffffffa1a0) ---Type <return> to continue, or q <return> to quit--- at /home/vvassilev/workspace/llvm-git/src/tools/clang/lib/Frontend/FrontendAction.cpp:439 #15 0x00000000026b45d0 in clang::CompilerInstance::ExecuteAction (this=0x7fffffffa240, Act=...) at /home/vvassilev/workspace/llvm-git/src/tools/clang/lib/Frontend/CompilerInstance.cpp:841 #16 0x00000000026b4917 in __lambda10::operator() (__closure=0x7fffffffa150) at /home/vvassilev/workspace/llvm-git/src/tools/clang/lib/Frontend/CompilerInstance.cpp:1010 #17 0x00000000026ba857 in llvm::function_ref<void()>::callback_fn<compileModuleImpl(clang::CompilerInstance&, clang::SourceLocation, clang::Module*, llvm::StringRef)::__lambda10>(intptr_t) (callable=140737488331088) at /home/vvassilev/workspace/llvm-git/src/include/llvm/ADT/STLExtras.h:76 #18 0x00000000044a19a0 in llvm::function_ref<void ()>::operator()() const (this=0x7ffff6baee30) at /home/vvassilev/workspace/llvm-git/src/include/llvm/ADT/STLExtras.h:88 #19 0x00000000044a155f in llvm::CrashRecoveryContext::RunSafely(llvm::function_ref<void ()>) (this=0x7fffffffa130, Fn=...) at /home/vvassilev/workspace/llvm-git/src/lib/Support/CrashRecoveryContext.cpp:328 #20 0x00000000044a1688 in RunSafelyOnThread_Dispatch (UserData=0x7fffffffa020) at /home/vvassilev/workspace/llvm-git/src/lib/Support/CrashRecoveryContext.cpp:376 #21 0x0000000002097fca in ExecuteOnThread_Dispatch (Arg=0x7fffffff9f90) at /home/vvassilev/workspace/llvm-git/src/lib/Support/Threading.cpp:40 #22 0x00007ffff79c0182 in start_thread (arg=0x7ffff6baf700) at pthread_create.c:312 #23 0x00007ffff6caa47d in clone () at ../sysdeps/unix/sysv/linux/x86_64/clone.S:111 (gdb) f 4 #4 0x000000000350d654 in clang::ASTDeclWriter::VisitClassTemplateDecl (this=0x7ffff6baae90, D=0x7ffff0263bb8) at /home/vvassilev/workspace/llvm-git/src/tools/clang/lib/Serialization/ASTWriterDecl.cpp:1286 1286 AddTemplateSpecializations(D); (gdb) p D->dump() ClassTemplateDecl 0x7ffff0263bb8 </usr/lib/gcc/x86_64-linux-gnu/4.9/../../../../include/c++/4.9/bits/stl_iterator.h:96:3, line:278:5> line:97:11 reverse_iterator |-TemplateTypeParmDecl 0x7ffff0263a88 <line:96:12, col:21> col:21 referenced typename _Iterator |-CXXRecordDecl 0x7ffff0263b10 <line:97:5, line:278:5> line:97:11 class reverse_iterator definition | |-public 'iterator<typename iterator_traits<_Iterator>::iterator_category, typename iterator_traits<_Iterator>::value_type, typename iterator_traits<_Iterator>::difference_type, typename iterator_traits<_Iterator>::pointer, typename iterator_traits<_Iterator>::reference>' | |-CXXRecordDecl 0x7ffff02648d8 <col:5, col:11> col:11 implicit referenced class reverse_iterator | |-AccessSpecDecl 0x7ffff0264980 <line:104:5, col:14> col:5 protected | |-FieldDecl 0x7ffff02649b8 <line:105:7, col:17> col:17 referenced current '_Iterator' | |-TypedefDecl 0x7ffff0264b08 <line:107:7, col:43> col:43 referenced __traits_type 'iterator_traits<_Iterator>' | |-AccessSpecDecl 0x7ffff0264b58 <line:109:5, col:11> col:5 public | |-TypedefDecl 0x7ffff0264b90 <line:110:7, col:29> col:29 referenced iterator_type '_Iterator' | |-TypedefDecl 0x7ffff0264ca0 <line:111:7, col:55> col:55 referenced difference_type 'typename __traits_type::difference_type' | |-TypedefDecl 0x7ffff0264d80 <line:112:7, col:48> col:48 referenced pointer 'typename __traits_type::pointer' | |-TypedefDecl 0x7ffff0264e60 <line:113:7, col:50> col:50 referenced reference 'typename __traits_type::reference' | |-CXXConstructorDecl 0x7ffff0264f18 <line:121:7, col:40> col:7 reverse_iterator<_Iterator> 'void (void)' | | |-CXXCtorInitializer Field 0x7ffff02649b8 'current' '_Iterator' | | | `-ParenListExpr 0x7ffff02673f8 <col:35, col:36> 'NULL TYPE' | | `-CompoundStmt 0x7ffff0267450 <col:38, col:40> | |-CXXConstructorDecl 0x7ffff0265ba0 <line:126:7, line:127:60> col:7 reverse_iterator<_Iterator> 'void (iterator_type)' | | |-ParmVarDecl 0x7ffff0265010 <col:24, col:38> col:38 referenced __x 'iterator_type':'_Iterator' | | |-CXXCtorInitializer Field 0x7ffff02649b8 'current' '_Iterator' | | | `-ParenListExpr 0x7ffff02674a8 <col:52, col:56> 'NULL TYPE' | | | `-DeclRefExpr 0x7ffff0267480 <col:53> 'iterator_type':'_Iterator' lvalue ParmVar 0x7ffff0265010 '__x' 'iterator_type':'_Iterator' | | `-CompoundStmt 0x7ffff0267508 <col:58, col:60> | |-CXXConstructorDecl 0x7ffff0265d80 <line:132:7, line:133:32> line:132:7 reverse_iterator<_Iterator> 'void (const reverse_iterator<_Iterator> &)' | | |-ParmVarDecl 0x7ffff0265ca8 <col:24, col:48> col:48 referenced __x 'const reverse_iterator<_Iterator> &' | | |-CXXCtorInitializer Field 0x7ffff02649b8 'current' '_Iterator' | | | `-ParenListExpr 0x7ffff02675b8 <line:133:16, col:28> 'NULL TYPE' | | | `-CXXDependentScopeMemberExpr 0x7ffff0267560 <col:17, col:21> '<dependent type>' lvalue | | | `-DeclRefExpr 0x7ffff0267538 <col:17> 'const reverse_iterator<_Iterator>' lvalue ParmVar 0x7ffff0265ca8 '__x' 'const reverse_iterator<_Iterator> &' | | `-CompoundStmt 0x7ffff0267618 <col:30, col:32> | |-FunctionTemplateDecl 0x7ffff0266270 <line:139:7, line:141:26> line:140:9 reverse_iterator<_Iterator> | | |-TemplateTypeParmDecl 0x7ffff0265e48 <line:139:16, col:25> col:25 referenced typename _Iter | | `-CXXConstructorDecl 0x7ffff02661b0 <line:140:9, line:141:26> line:140:9 reverse_iterator<_Iterator> 'void (const reverse_iterator<_Iter> &)' | | |-ParmVarDecl 0x7ffff0266090 <col:26, col:57> col:57 referenced __x 'const reverse_iterator<_Iter> &' | | |-CXXCtorInitializer Field 0x7ffff02649b8 'current' '_Iterator' | | | `-ParenListExpr 0x7ffff02676f0 <line:141:11, col:22> 'NULL TYPE' | | | `-CallExpr 0x7ffff02676c8 <col:12, col:21> '<dependent type>' | | | `-CXXDependentScopeMemberExpr 0x7ffff0267670 <col:12, col:16> '<dependent type>' lvalue | | | `-DeclRefExpr 0x7ffff0267648 <col:12> 'const reverse_iterator<_Iter>' lvalue ParmVar 0x7ffff0266090 '__x' 'const reverse_iterator<_Iter> &' | | `-CompoundStmt 0x7ffff0267750 <col:24, col:26> | |-CXXMethodDecl 0x7ffff0266350 <line:146:7, line:148:25> line:147:7 base 'iterator_type (void) const' | | `-CompoundStmt 0x7ffff02677e8 <line:148:7, col:25> | | `-ReturnStmt 0x7ffff02677d0 <col:9, col:16> | | `-MemberExpr 0x7ffff0267798 <col:16> 'const _Iterator' lvalue ->current 0x7ffff02649b8 | | `-CXXThisExpr 0x7ffff0267780 <col:16> 'const reverse_iterator<_Iterator> *' this | |-CXXMethodDecl 0x7ffff02664a0 <line:160:7, line:165:7> line:161:7 referenced operator* 'reference (void) const' | | `-CompoundStmt 0x7ffff0267978 <line:162:7, line:165:7> | | |-DeclStmt 0x7ffff02678e0 <line:163:2, col:27> | | | `-VarDecl 0x7ffff0267830 <col:2, col:20> col:12 referenced __tmp '_Iterator' cinit | | | `-MemberExpr 0x7ffff02678a8 <col:20> 'const _Iterator' lvalue ->current 0x7ffff02649b8 | | | `-CXXThisExpr 0x7ffff0267890 <col:20> 'const reverse_iterator<_Iterator> *' this | | `-ReturnStmt 0x7ffff0267960 <line:164:2, col:12> | | `-UnaryOperator 0x7ffff0267940 <col:9, col:12> '<dependent type>' prefix '*' | | `-UnaryOperator 0x7ffff0267920 <col:10, col:12> '<dependent type>' prefix '--' | | `-DeclRefExpr 0x7ffff02678f8 <col:12> '_Iterator' lvalue Var 0x7ffff0267830 '__tmp' '_Iterator' | |-CXXMethodDecl 0x7ffff02665f0 <line:172:7, line:174:32> line:173:7 operator-> 'pointer (void) const' | | `-CompoundStmt 0x7ffff0267a88 <line:174:7, col:32> | | `-ReturnStmt 0x7ffff0267a70 <col:9, col:29> | | `-UnaryOperator 0x7ffff0267a50 <col:16, col:29> '<dependent type>' prefix '&' | | `-ParenExpr 0x7ffff0267a30 <col:17, col:29> '<dependent type>' | | `-CallExpr 0x7ffff0267a08 <col:18, col:28> '<dependent type>' | | `-MemberExpr 0x7ffff02679d0 <col:18, col:26> '<bound member function type>' ->operator* 0x7ffff02664a0 | | `-CXXThisExpr 0x7ffff02679b8 <col:18> 'const reverse_iterator<_Iterator> *' this | |-CXXMethodDecl 0x7ffff0266720 <line:181:7, line:186:7> line:182:7 operator++ 'reverse_iterator<_Iterator> &(void)' | | `-CompoundStmt 0x7ffff026a070 <line:183:7, line:186:7> | | |-UnaryOperator 0x7ffff0267b10 <line:184:2, col:4> '<dependent type>' prefix '--' | | | `-MemberExpr 0x7ffff0267ad8 <col:4> '_Iterator' lvalue ->current 0x7ffff02649b8 | | | `-CXXThisExpr 0x7ffff0267ac0 <col:4> 'reverse_iterator<_Iterator> *' this | | `-ReturnStmt 0x7ffff026a058 <line:185:2, col:10> | | `-UnaryOperator 0x7ffff026a038 <col:9, col:10> '<dependent type>' prefix '*' | | `-CXXThisExpr 0x7ffff026a020 <col:10> 'reverse_iterator<_Iterator> *' this | |-CXXMethodDecl 0x7ffff02668a0 <line:193:7, line:199:7> line:194:7 operator++ 'reverse_iterator<_Iterator> (int)' | | |-ParmVarDecl 0x7ffff02667d8 <col:18> col:21 'int' | | `-CompoundStmt 0x7ffff026a220 <line:195:7, line:199:7> | | |-DeclStmt 0x7ffff026a158 <line:196:2, col:32> | | | `-VarDecl 0x7ffff026a0c0 <col:2, col:28> col:19 referenced __tmp 'reverse_iterator<_Iterator>' nrvo cinit | | | `-UnaryOperator 0x7ffff026a138 <col:27, col:28> '<dependent type>' prefix '*' | | | `-CXXThisExpr 0x7ffff026a120 <col:28> 'reverse_iterator<_Iterator> *' this | | |-UnaryOperator 0x7ffff026a1c0 <line:197:2, col:4> '<dependent type>' prefix '--' | | | `-MemberExpr 0x7ffff026a188 <col:4> '_Iterator' lvalue ->current 0x7ffff02649b8 | | | `-CXXThisExpr 0x7ffff026a170 <col:4> 'reverse_iterator<_Iterator> *' this | | `-ReturnStmt 0x7ffff026a208 <line:198:2, col:9> | | `-DeclRefExpr 0x7ffff026a1e0 <col:9> 'reverse_iterator<_Iterator>' lvalue Var 0x7ffff026a0c0 '__tmp' 'reverse_iterator<_Iterator>' | |-CXXMethodDecl 0x7ffff0266970 <line:206:7, line:211:7> line:207:7 operator-- 'reverse_iterator<_Iterator> &(void)' | | `-CompoundStmt 0x7ffff026a340 <line:208:7, line:211:7> | | |-UnaryOperator 0x7ffff026a2d0 <line:209:2, col:4> '<dependent type>' prefix '++' | | | `-MemberExpr 0x7ffff026a298 <col:4> '_Iterator' lvalue ->current 0x7ffff02649b8 | | | `-CXXThisExpr 0x7ffff026a280 <col:4> 'reverse_iterator<_Iterator> *' this | | `-ReturnStmt 0x7ffff026a328 <line:210:2, col:10> | | `-UnaryOperator 0x7ffff026a308 <col:9, col:10> '<dependent type>' prefix '*' | | `-CXXThisExpr 0x7ffff026a2f0 <col:10> 'reverse_iterator<_Iterator> *' this | |-CXXMethodDecl 0x7ffff0266ab0 <line:218:7, line:224:7> line:219:7 operator-- 'reverse_iterator<_Iterator> (int)' | | |-ParmVarDecl 0x7ffff0266a28 <col:18> col:21 'int' | | `-CompoundStmt 0x7ffff026a4f0 <line:220:7, line:224:7> | | |-DeclStmt 0x7ffff026a428 <line:221:2, col:32> | | | `-VarDecl 0x7ffff026a390 <col:2, col:28> col:19 referenced __tmp 'reverse_iterator<_Iterator>' nrvo cinit | | | `-UnaryOperator 0x7ffff026a408 <col:27, col:28> '<dependent type>' prefix '*' | | | `-CXXThisExpr 0x7ffff026a3f0 <col:28> 'reverse_iterator<_Iterator> *' this | | |-UnaryOperator 0x7ffff026a490 <line:222:2, col:4> '<dependent type>' prefix '++' | | | `-MemberExpr 0x7ffff026a458 <col:4> '_Iterator' lvalue ->current 0x7ffff02649b8 | | | `-CXXThisExpr 0x7ffff026a440 <col:4> 'reverse_iterator<_Iterator> *' this | | `-ReturnStmt 0x7ffff026a4d8 <line:223:2, col:9> | | `-DeclRefExpr 0x7ffff026a4b0 <col:9> 'reverse_iterator<_Iterator>' lvalue Var 0x7ffff026a390 '__tmp' 'reverse_iterator<_Iterator>' | |-CXXMethodDecl 0x7ffff0266cb0 <line:231:7, line:233:49> line:232:7 operator+ 'reverse_iterator<_Iterator> (difference_type) const' | | |-ParmVarDecl 0x7ffff0266b90 <col:17, col:33> col:33 referenced __n 'difference_type':'typename __traits_type::difference_type' | | `-CompoundStmt 0x7ffff026a648 <line:233:7, col:49> | | `-ReturnStmt 0x7ffff026a630 <col:9, col:46> | | `-CXXUnresolvedConstructExpr 0x7ffff026a600 <col:16, col:46> 'reverse_iterator<_Iterator>' | | `-BinaryOperator 0x7ffff026a5d8 <col:33, col:43> '<dependent type>' '-' | | |-MemberExpr 0x7ffff026a578 <col:33> 'const _Iterator' lvalue ->current 0x7ffff02649b8 | | | `-CXXThisExpr 0x7ffff026a560 <col:33> 'const reverse_iterator<_Iterator> *' this | | `-DeclRefExpr 0x7ffff026a5b0 <col:43> 'difference_type':'typename __traits_type::difference_type' lvalue ParmVar 0x7ffff0266b90 '__n' 'difference_type':'typename __traits_type::difference_type' | |-CXXMethodDecl 0x7ffff0266e90 <line:241:7, line:246:7> line:242:7 operator+= 'reverse_iterator<_Iterator> &(difference_type)' | | |-ParmVarDecl 0x7ffff0266d70 <col:18, col:34> col:34 referenced __n 'difference_type':'typename __traits_type::difference_type' | | `-CompoundStmt 0x7ffff026a780 <line:243:7, line:246:7> | | |-CompoundAssignOperator 0x7ffff026a6f8 <line:244:2, col:13> '<dependent type>' lvalue '-=' ComputeLHSTy='<dependent type>' ComputeResultTy='<dependent type>' | | | |-MemberExpr 0x7ffff026a698 <col:2> '_Iterator' lvalue ->current 0x7ffff02649b8 | | | | `-CXXThisExpr 0x7ffff026a680 <col:2> 'reverse_iterator<_Iterator> *' this | | | `-DeclRefExpr 0x7ffff026a6d0 <col:13> 'difference_type':'typename __traits_type::difference_type' lvalue ParmVar 0x7ffff0266d70 '__n' 'difference_type':'typename __traits_type::difference_type' | | `-ReturnStmt 0x7ffff026a768 <line:245:2, col:10> | | `-UnaryOperator 0x7ffff026a748 <col:9, col:10> '<dependent type>' prefix '*' | | `-CXXThisExpr 0x7ffff026a730 <col:10> 'reverse_iterator<_Iterator> *' this | |-CXXMethodDecl 0x7ffff0266ff0 <line:253:7, line:255:49> line:254:7 operator- 'reverse_iterator<_Iterator> (difference_type) const' | | |-ParmVarDecl 0x7ffff0266f50 <col:17, col:33> col:33 referenced __n 'difference_type':'typename __traits_type::difference_type' | | `-CompoundStmt 0x7ffff026a8b8 <line:255:7, col:49> | | `-ReturnStmt 0x7ffff026a8a0 <col:9, col:46> | | `-CXXUnresolvedConstructExpr 0x7ffff026a870 <col:16, col:46> 'reverse_iterator<_Iterator>' | | `-BinaryOperator 0x7ffff026a848 <col:33, col:43> '<dependent type>' '+' | | |-MemberExpr 0x7ffff026a7e8 <col:33> 'const _Iterator' lvalue ->current 0x7ffff02649b8 | | | `-CXXThisExpr 0x7ffff026a7d0 <col:33> 'const reverse_iterator<_Iterator> *' this | | `-DeclRefExpr 0x7ffff026a820 <col:43> 'difference_type':'typename __traits_type::difference_type' lvalue ParmVar 0x7ffff0266f50 '__n' 'difference_type':'typename __traits_type::difference_type' | |-CXXMethodDecl 0x7ffff0267150 <line:263:7, line:268:7> line:264:7 operator-= 'reverse_iterator<_Iterator> &(difference_type)' | | |-ParmVarDecl 0x7ffff02670b0 <col:18, col:34> col:34 referenced __n 'difference_type':'typename __traits_type::difference_type' | | `-CompoundStmt 0x7ffff026a9f0 <line:265:7, line:268:7> | | |-CompoundAssignOperator 0x7ffff026a968 <line:266:2, col:13> '<dependent type>' lvalue '+=' ComputeLHSTy='<dependent type>' ComputeResultTy='<dependent type>' | | | |-MemberExpr 0x7ffff026a908 <col:2> '_Iterator' lvalue ->current 0x7ffff02649b8 | | | | `-CXXThisExpr 0x7ffff026a8f0 <col:2> 'reverse_iterator<_Iterator> *' this | | | `-DeclRefExpr 0x7ffff026a940 <col:13> 'difference_type':'typename __traits_type::difference_type' lvalue ParmVar 0x7ffff02670b0 '__n' 'difference_type':'typename __traits_type::difference_type' | | `-ReturnStmt 0x7ffff026a9d8 <line:267:2, col:10> | | `-UnaryOperator 0x7ffff026a9b8 <col:9, col:10> '<dependent type>' prefix '*' | | `-CXXThisExpr 0x7ffff026a9a0 <col:10> 'reverse_iterator<_Iterator> *' this | `-CXXMethodDecl 0x7ffff0267330 <line:275:7, line:277:32> line:276:7 operator[] 'reference (difference_type) const' | |-ParmVarDecl 0x7ffff0267210 <col:18, col:34> col:34 referenced __n 'difference_type':'typename __traits_type::difference_type' | `-CompoundStmt 0x7ffff026ab10 <line:277:7, col:32> | `-ReturnStmt 0x7ffff026aaf8 <col:9, col:29> | `-UnaryOperator 0x7ffff026aad8 <col:16, col:29> '<dependent type>' prefix '*' | `-ParenExpr 0x7ffff026aab8 <col:17, col:29> '<dependent type>' | `-BinaryOperator 0x7ffff026aa90 <col:18, col:26> '<dependent type>' '+' | |-UnaryOperator 0x7ffff026aa48 <col:18, col:19> '<dependent type>' prefix '*' | | `-CXXThisExpr 0x7ffff026aa30 <col:19> 'const reverse_iterator<_Iterator> *' this | `-DeclRefExpr 0x7ffff026aa68 <col:26> 'difference_type':'typename __traits_type::difference_type' lvalue ParmVar 0x7ffff0267210 '__n' 'difference_type':'typename __traits_type::difference_type' |-ClassTemplateSpecializationDecl 0x7ffff06ee618 prev 0x7ffff0405508 <line:96:3, line:278:5> line:97:11 in TBuffer.h class reverse_iterator | |-TemplateArgument type 'struct std::_Bit_const_iterator' | `-<undeserialized declarations> |-ClassTemplateSpecializationDecl 0x7ffff03e1fe0 <line:96:3, line:278:5> line:97:11 class reverse_iterator definition | |-public 'iterator<typename iterator_traits<struct _Bit_const_iterator>::iterator_category, typename iterator_traits<struct _Bit_const_iterator>::value_type, typename iterator_traits<struct _Bit_const_iterator>::difference_type, typename iterator_traits<struct _Bit_const_iterator>::pointer, typename iterator_traits<struct _Bit_const_iterator>::reference>':'struct std::iterator<struct std::random_access_iterator_tag, _Bool, long, const _Bool *, _Bool>' | |-TemplateArgument type 'struct std::_Bit_const_iterator' | |-CXXRecordDecl 0x7ffff0405508 prev 0x7ffff03e1fe0 <col:5, col:11> col:11 implicit class reverse_iterator | |-AccessSpecDecl 0x7ffff0405598 <line:104:5, col:14> col:5 protected | |-FieldDecl 0x7ffff04055d0 <line:105:7, col:17> col:17 current 'struct std::_Bit_const_iterator':'struct std::_Bit_const_iterator' | |-TypedefDecl 0x7ffff04056a8 <line:107:7, col:43> col:43 __traits_type 'iterator_traits<struct std::_Bit_const_iterator>':'struct std::iterator_traits<struct std::_Bit_const_iterator>' | |-AccessSpecDecl 0x7ffff04056f8 <line:109:5, col:11> col:5 public | |-TypedefDecl 0x7ffff0405730 <line:110:7, col:29> col:29 iterator_type 'struct std::_Bit_const_iterator':'struct std::_Bit_const_iterator' | |-TypedefDecl 0x7ffff0405830 <line:111:7, col:55> col:55 difference_type 'typename __traits_type::difference_type':'long' | |-TypedefDecl 0x7ffff04058f0 <line:112:7, col:48> col:48 pointer 'typename __traits_type::pointer':'const _Bool *' | |-TypedefDecl 0x7ffff04059b0 <line:113:7, col:50> col:50 reference 'typename __traits_type::reference':'_Bool' | |-CXXConstructorDecl 0x7ffff0405a40 <line:121:7> col:7 reverse_iterator 'void (void)' | |-CXXConstructorDecl 0x7ffff0405c60 <line:126:7, line:127:7> col:7 reverse_iterator 'void (iterator_type)' | | `-ParmVarDecl 0x7ffff0405b40 <col:24, col:38> col:38 __x 'iterator_type':'struct std::_Bit_const_iterator' | |-CXXConstructorDecl 0x7ffff0405e60 <line:132:7> col:7 referenced reverse_iterator 'void (const class std::reverse_iterator<struct std::_Bit_const_iterator> &)' | | `-ParmVarDecl 0x7ffff0405d78 <col:24, col:48> col:48 __x 'const class std::reverse_iterator<struct std::_Bit_const_iterator> &' | |-FunctionTemplateDecl 0x7ffff0406270 <line:139:7, line:140:9> col:9 reverse_iterator | | |-TemplateTypeParmDecl 0x7ffff0405f38 <line:139:16, col:25> col:25 typename _Iter | | |-CXXConstructorDecl 0x7ffff04061b0 <line:140:9> col:9 reverse_iterator 'void (const reverse_iterator<_Iter> &)' | | | `-ParmVarDecl 0x7ffff04060d0 <col:26, col:57> col:57 __x 'const reverse_iterator<_Iter> &' | | |-CXXConstructorDecl 0x7ffff06f1b10 parent 0x7ffff03e1fe0 prev 0x7ffff0409010 <col:9> col:9 in TBuffer.h reverse_iterator 'void (const reverse_iterator<struct std::_Bit_const_iterator> &)' | | | |-TemplateArgument type 'struct std::_Bit_const_iterator' | | | `-ParmVarDecl 0x7ffff06f1d28 <col:26, col:57> col:57 in TBuffer.h __x 'const reverse_iterator<struct std::_Bit_const_iterator> &' | | `-CXXConstructorDecl 0x7ffff0409010 <col:9> col:9 reverse_iterator 'void (const reverse_iterator<struct std::_Bit_const_iterator> &)' | | |-TemplateArgument type 'struct std::_Bit_const_iterator' | | `-ParmVarDecl 0x7ffff0408f50 <col:26, col:57> col:57 __x 'const reverse_iterator<struct std::_Bit_const_iterator> &' | |-CXXMethodDecl 0x7ffff04063a0 <line:146:7, line:148:25> line:147:7 base 'iterator_type (void) const' | |-CXXMethodDecl 0x7ffff04064d0 <line:160:7, line:165:7> line:161:7 operator* 'reference (void) const' | |-CXXMethodDecl 0x7ffff0406600 <line:172:7, line:174:32> line:173:7 operator-> 'pointer (void) const' | |-CXXMethodDecl 0x7ffff0406740 <line:181:7, line:186:7> line:182:7 operator++ 'class std::reverse_iterator<struct std::_Bit_const_iterator> &(void)' | |-CXXMethodDecl 0x7ffff04068c0 <line:193:7, line:199:7> line:194:7 operator++ 'class std::reverse_iterator<struct std::_Bit_const_iterator> (int)' | | `-ParmVarDecl 0x7ffff04067f8 <col:18> col:21 'int' | |-CXXMethodDecl 0x7ffff04069a0 <line:206:7, line:211:7> line:207:7 operator-- 'class std::reverse_iterator<struct std::_Bit_const_iterator> &(void)' | |-CXXMethodDecl 0x7ffff0406ae0 <line:218:7, line:224:7> line:219:7 operator-- 'class std::reverse_iterator<struct std::_Bit_const_iterator> (int)' | | `-ParmVarDecl 0x7ffff0406a58 <col:18> col:21 'int' | |-CXXMethodDecl 0x7ffff0406cd0 <line:231:7, line:233:49> line:232:7 operator+ 'class std::reverse_iterator<struct std::_Bit_const_iterator> (difference_type) const' | | `-ParmVarDecl 0x7ffff0406bd0 <col:17, col:33> col:33 __n 'difference_type':'long' | |-CXXMethodDecl 0x7ffff0406ea0 <line:241:7, line:246:7> line:242:7 operator+= 'class std::reverse_iterator<struct std::_Bit_const_iterator> &(difference_type)' | | `-ParmVarDecl 0x7ffff0406da0 <col:18, col:34> col:34 __n 'difference_type':'long' | |-CXXMethodDecl 0x7ffff0406ff8 <line:253:7, line:255:49> line:254:7 operator- 'class std::reverse_iterator<struct std::_Bit_const_iterator> (difference_type) const' | | `-ParmVarDecl 0x7ffff0406f70 <col:17, col:33> col:33 __n 'difference_type':'long' | |-CXXMethodDecl 0x7ffff0408ad0 <line:263:7, line:268:7> line:264:7 operator-= 'class std::reverse_iterator<struct std::_Bit_const_iterator> &(difference_type)' | | `-ParmVarDecl 0x7ffff04070c8 <col:18, col:34> col:34 __n 'difference_type':'long' | `-CXXMethodDecl 0x7ffff0408c60 <line:275:7, line:277:32> line:276:7 operator[] 'reference (difference_type) const' | `-ParmVarDecl 0x7ffff0408ba0 <col:18, col:34> col:34 __n 'difference_type':'long' |-ClassTemplateSpecializationDecl 0x7ffff06efd58 prev 0x7ffff03fe198 <line:96:3, line:278:5> line:97:11 in TBuffer.h class reverse_iterator | |-TemplateArgument type 'struct std::_Bit_iterator' | `-<undeserialized declarations> |-ClassTemplateSpecializationDecl 0x7ffff03e22a0 <line:96:3, line:278:5> line:97:11 class reverse_iterator definition | |-public 'iterator<typename iterator_traits<struct _Bit_iterator>::iterator_category, typename iterator_traits<struct _Bit_iterator>::value_type, typename iterator_traits<struct _Bit_iterator>::difference_type, typename iterator_traits<struct _Bit_iterator>::pointer, typename iterator_traits<struct _Bit_iterator>::reference>':'struct std::iterator<struct std::random_access_iterator_tag, _Bool, long, struct std::_Bit_reference *, struct std::_Bit_reference>' | |-TemplateArgument type 'struct std::_Bit_iterator' | |-CXXRecordDecl 0x7ffff03fe198 prev 0x7ffff03e22a0 <col:5, col:11> col:11 implicit class reverse_iterator | |-AccessSpecDecl 0x7ffff03fe228 <line:104:5, col:14> col:5 protected | |-FieldDecl 0x7ffff03fe260 <line:105:7, col:17> col:17 current 'struct std::_Bit_iterator':'struct std::_Bit_iterator' | |-TypedefDecl 0x7ffff03fe338 <line:107:7, col:43> col:43 __traits_type 'iterator_traits<struct std::_Bit_iterator>':'struct std::iterator_traits<struct std::_Bit_iterator>' | |-AccessSpecDecl 0x7ffff03fe388 <line:109:5, col:11> col:5 public | |-TypedefDecl 0x7ffff03fe3c0 <line:110:7, col:29> col:29 iterator_type 'struct std::_Bit_iterator':'struct std::_Bit_iterator' | |-TypedefDecl 0x7ffff03fe4c0 <line:111:7, col:55> col:55 difference_type 'typename __traits_type::difference_type':'long' | |-TypedefDecl 0x7ffff03fe580 <line:112:7, col:48> col:48 pointer 'typename __traits_type::pointer':'struct std::_Bit_reference *' | |-TypedefDecl 0x7ffff03fe640 <line:113:7, col:50> col:50 reference 'typename __traits_type::reference':'struct std::_Bit_reference' | |-CXXConstructorDecl 0x7ffff03fe6d0 <line:121:7> col:7 reverse_iterator 'void (void)' | |-CXXConstructorDecl 0x7ffff03fe8b0 <line:126:7, line:127:7> col:7 reverse_iterator 'void (iterator_type)' | | `-ParmVarDecl 0x7ffff03fe7d0 <col:24, col:38> col:38 __x 'iterator_type':'struct std::_Bit_iterator' | |-CXXConstructorDecl 0x7ffff03feab0 <line:132:7> col:7 referenced reverse_iterator 'void (const class std::reverse_iterator<struct std::_Bit_iterator> &)' | | `-ParmVarDecl 0x7ffff03fe9c8 <col:24, col:48> col:48 __x 'const class std::reverse_iterator<struct std::_Bit_iterator> &' | |-FunctionTemplateDecl 0x7ffff03fef00 <line:139:7, line:140:9> col:9 reverse_iterator | | |-TemplateTypeParmDecl 0x7ffff03feb88 <line:139:16, col:25> col:25 typename _Iter | | |-CXXConstructorDecl 0x7ffff03fee40 <line:140:9> col:9 reverse_iterator 'void (const reverse_iterator<_Iter> &)' | | | `-ParmVarDecl 0x7ffff03fed20 <col:26, col:57> col:57 __x 'const reverse_iterator<_Iter> &' | | |-CXXConstructorDecl 0x7ffff06f27f0 parent 0x7ffff03e22a0 prev 0x7ffff0400350 <col:9> col:9 in TBuffer.h reverse_iterator 'void (const reverse_iterator<struct std::_Bit_iterator> &)' | | | |-TemplateArgument type 'struct std::_Bit_iterator' | | | `-ParmVarDecl 0x7ffff06f2a08 <col:26, col:57> col:57 in TBuffer.h __x 'const reverse_iterator<struct std::_Bit_iterator> &' | | `-CXXConstructorDecl 0x7ffff0400350 <col:9> col:9 reverse_iterator 'void (const reverse_iterator<struct std::_Bit_iterator> &)' | | |-TemplateArgument type 'struct std::_Bit_iterator' | | `-ParmVarDecl 0x7ffff0400290 <col:26, col:57> col:57 __x 'const reverse_iterator<struct std::_Bit_iterator> &' | |-CXXMethodDecl 0x7ffff03ff030 <line:146:7, line:148:25> line:147:7 base 'iterator_type (void) const' | |-CXXMethodDecl 0x7ffff03ff160 <line:160:7, line:165:7> line:161:7 operator* 'reference (void) const' | |-CXXMethodDecl 0x7ffff03ff2c0 <line:172:7, line:174:32> line:173:7 operator-> 'pointer (void) const' | |-CXXMethodDecl 0x7ffff03ff400 <line:181:7, line:186:7> line:182:7 operator++ 'class std::reverse_iterator<struct std::_Bit_iterator> &(void)' | |-CXXMethodDecl 0x7ffff03ff580 <line:193:7, line:199:7> line:194:7 operator++ 'class std::reverse_iterator<struct std::_Bit_iterator> (int)' | | `-ParmVarDecl 0x7ffff03ff4b8 <col:18> col:21 'int' | |-CXXMethodDecl 0x7ffff03ff660 <line:206:7, line:211:7> line:207:7 operator-- 'class std::reverse_iterator<struct std::_Bit_iterator> &(void)' | |-CXXMethodDecl 0x7ffff03ff7a0 <line:218:7, line:224:7> line:219:7 operator-- 'class std::reverse_iterator<struct std::_Bit_iterator> (int)' | | `-ParmVarDecl 0x7ffff03ff718 <col:18> col:21 'int' | |-CXXMethodDecl 0x7ffff03ff990 <line:231:7, line:233:49> line:232:7 operator+ 'class std::reverse_iterator<struct std::_Bit_iterator> (difference_type) const' | | `-ParmVarDecl 0x7ffff03ff890 <col:17, col:33> col:33 __n 'difference_type':'long' | |-CXXMethodDecl 0x7ffff03ffb60 <line:241:7, line:246:7> line:242:7 operator+= 'class std::reverse_iterator<struct std::_Bit_iterator> &(difference_type)' | | `-ParmVarDecl 0x7ffff03ffa60 <col:18, col:34> col:34 __n 'difference_type':'long' | |-CXXMethodDecl 0x7ffff03ffcb8 <line:253:7, line:255:49> line:254:7 operator- 'class std::reverse_iterator<struct std::_Bit_iterator> (difference_type) const' | | `-ParmVarDecl 0x7ffff03ffc30 <col:17, col:33> col:33 __n 'difference_type':'long' | |-CXXMethodDecl 0x7ffff03ffe10 <line:263:7, line:268:7> line:264:7 operator-= 'class std::reverse_iterator<struct std::_Bit_iterator> &(difference_type)' | | `-ParmVarDecl 0x7ffff03ffd88 <col:18, col:34> col:34 __n 'difference_type':'long' | `-CXXMethodDecl 0x7ffff03fffa0 <line:275:7, line:277:32> line:276:7 operator[] 'reference (difference_type) const' | `-ParmVarDecl 0x7ffff03ffee0 <col:18, col:34> col:34 __n 'difference_type':'long' |-ClassTemplateSpecializationDecl 0x7ffff06ed650 <line:96:3, line:278:5> line:97:11 class reverse_iterator | `-TemplateArgument type 'class __gnu_cxx::__normal_iterator<const char *, class std::basic_string<char> >' |-ClassTemplateSpecializationDecl 0x7ffff06ed778 <line:96:3, line:278:5> line:97:11 class reverse_iterator | `-TemplateArgument type 'class __gnu_cxx::__normal_iterator<char *, class std::basic_string<char> >' |-ClassTemplateSpecializationDecl 0x7ffff06ed898 <line:96:3, line:278:5> line:97:11 class reverse_iterator | `-TemplateArgument type 'class __gnu_cxx::__normal_iterator<const wchar_t *, class std::basic_string<wchar_t> >' |-ClassTemplateSpecializationDecl 0x7ffff06ed9b8 <line:96:3, line:278:5> line:97:11 class reverse_iterator | `-TemplateArgument type 'class __gnu_cxx::__normal_iterator<wchar_t *, class std::basic_string<wchar_t> >' |-ClassTemplateSpecializationDecl 0x7ffff06edad8 <line:96:3, line:278:5> line:97:11 class reverse_iterator | `-TemplateArgument type 'class __gnu_cxx::__normal_iterator<const char16_t *, class std::basic_string<char16_t, struct std::char_traits<char16_t>, class std::allocator<char16_t> > >' |-ClassTemplateSpecializationDecl 0x7ffff06edbf8 <line:96:3, line:278:5> line:97:11 class reverse_iterator | `-TemplateArgument type 'class __gnu_cxx::__normal_iterator<char16_t *, class std::basic_string<char16_t, struct std::char_traits<char16_t>, class std::allocator<char16_t> > >' |-ClassTemplateSpecializationDecl 0x7ffff06edd18 <line:96:3, line:278:5> line:97:11 class reverse_iterator | `-TemplateArgument type 'class __gnu_cxx::__normal_iterator<const char32_t *, class std::basic_string<char32_t, struct std::char_traits<char32_t>, class std::allocator<char32_t> > >' |-ClassTemplateSpecializationDecl 0x7ffff06ede38 <line:96:3, line:278:5> line:97:11 class reverse_iterator | `-TemplateArgument type 'class __gnu_cxx::__normal_iterator<char32_t *, class std::basic_string<char32_t, struct std::char_traits<char32_t>, class std::allocator<char32_t> > >' |-ClassTemplateSpecializationDecl 0x7ffff06edf58 <line:96:3, line:278:5> line:97:11 class reverse_iterator | `-TemplateArgument type 'struct std::_Rb_tree_const_iterator<int *>' |-ClassTemplateSpecializationDecl 0x7ffff06ee078 <line:96:3, line:278:5> line:97:11 class reverse_iterator | `-TemplateArgument type 'struct std::_Rb_tree_const_iterator<struct TCollectionProxyInfo::EnvironBase *>' |-ClassTemplateSpecializationDecl 0x7ffff06ee198 <line:96:3, line:278:5> line:97:11 class reverse_iterator | `-TemplateArgument type 'class __gnu_cxx::__normal_iterator<const int *, class std::vector<int, class std::allocator<int> > >' |-ClassTemplateSpecializationDecl 0x7ffff06ee2b8 <line:96:3, line:278:5> line:97:11 class reverse_iterator | `-TemplateArgument type 'class __gnu_cxx::__normal_iterator<int *, class std::vector<int, class std::allocator<int> > >' |-ClassTemplateSpecializationDecl 0x7ffff06ee3d8 <line:96:3, line:278:5> line:97:11 class reverse_iterator | `-TemplateArgument type 'struct std::_Rb_tree_iterator<int *>' |-ClassTemplateSpecializationDecl 0x7ffff06ee4f8 <line:96:3, line:278:5> line:97:11 class reverse_iterator | `-TemplateArgument type 'struct std::_Rb_tree_iterator<struct TCollectionProxyInfo::EnvironBase *>' |-ClassTemplateSpecializationDecl 0x7ffff06eff78 <line:96:3, line:278:5> line:97:11 in TBuffer.h class reverse_iterator | `-TemplateArgument type 'class __gnu_cxx::__normal_iterator<int *const *, class std::vector<int *, class std::allocator<int *> > >' `-ClassTemplateSpecializationDecl 0x7ffff06f0448 <line:96:3, line:278:5> line:97:11 in TBuffer.h class reverse_iterator `-TemplateArgument type 'class __gnu_cxx::__normal_iterator<int **, class std::vector<int *, class std::allocator<int *> > >' $8 = void =============================== Valgrind ==================================== ==3821== Thread 2: ==3821== Invalid read of size 8 ==3821== at 0x22688ED: llvm::pointee_iterator<clang::ClassTemplateSpecializationDecl**, clang::ClassTemplateSpecializationDecl>::operator*() const (iterator.h:241) ==3821== by 0x3517EEB: void clang::ASTDeclWriter::AddTemplateSpecializations<clang::ClassTemplateDecl>(clang::ClassTemplateDecl*) (ASTWriterDecl.cpp:217) ==3821== by 0x350D653: clang::ASTDeclWriter::VisitClassTemplateDecl(clang::ClassTemplateDecl*) (ASTWriterDecl.cpp:1286) ==3821== by 0x35145C6: clang::declvisitor::Base<clang::declvisitor::make_ptr, clang::ASTDeclWriter, void>::Visit(clang::Decl*) (DeclNodes.inc:189) ==3821== by 0x3507911: clang::ASTDeclWriter::Visit(clang::Decl*) (ASTWriterDecl.cpp:258) ==3821== by 0x3511C79: clang::ASTWriter::WriteDecl(clang::ASTContext&, clang::Decl*) (ASTWriterDecl.cpp:2130) ==3821== by 0x34CB854: clang::ASTWriter::WriteASTCore(clang::Sema&, llvm::StringRef, std::string const&, clang::Module*) (ASTWriter.cpp:4421) ==3821== by 0x34C96A5: clang::ASTWriter::WriteAST(clang::Sema&, std::string const&, clang::Module*, llvm::StringRef, bool) (ASTWriter.cpp:4081) ==3821== by 0x35310EA: clang::PCHGenerator::HandleTranslationUnit(clang::ASTContext&) (GeneratePCH.cpp:54) ==3821== by 0x27223D7: clang::MultiplexConsumer::HandleTranslationUnit(clang::ASTContext&) (MultiplexConsumer.cpp:286) ==3821== by 0x32D67E2: clang::ParseAST(clang::Sema&, bool, bool) (ParseAST.cpp:168) ==3821== by 0x26FB0D1: clang::ASTFrontendAction::ExecuteAction() (FrontendAction.cpp:539) ==3821== Address 0xaeece98 is 8 bytes inside a block of size 136 free'd ==3821== at 0x7D48E8E: realloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so) ==3821== by 0x204BFAF: llvm::SmallVectorBase::grow_pod(void*, unsigned long, unsigned long) (SmallVector.cpp:34) ==3821== by 0x347650B: llvm::SmallVectorTemplateCommon<clang::ClassTemplateSpecializationDecl*, void>::grow_pod(unsigned long, unsigned long) (SmallVector.h:81) ==3821== by 0x347198B: llvm::SmallVectorTemplateBase<clang::ClassTemplateSpecializationDecl*, true>::grow(unsigned long) (SmallVector.h:334) ==3821== by 0x346C096: llvm::SmallVectorTemplateBase<clang::ClassTemplateSpecializationDecl*, true>::push_back(clang::ClassTemplateSpecializationDecl* const&) (SmallVector.h:339) ==3821== by 0x3463F01: llvm::FoldingSetVector<clang::ClassTemplateSpecializationDecl, llvm::SmallVector<clang::ClassTemplateSpecializationDecl*, 8u> >::GetOrInsertNode(clang::ClassTemplateSpecializationDecl*) (FoldingSet.h:580) ==3821== by 0x3421828: clang::ASTDeclReader::VisitClassTemplateSpecializationDeclImpl(clang::ClassTemplateSpecializationDecl*) (ASTReaderDecl.cpp:1928) ==3821== by 0x345ADF0: clang::ASTDeclReader::VisitClassTemplateSpecializationDecl(clang::ClassTemplateSpecializationDecl*) (ASTReaderDecl.cpp:262) ==3821== by 0x345D306: clang::declvisitor::Base<clang::declvisitor::make_ptr, clang::ASTDeclReader, void>::Visit(clang::Decl*) (DeclNodes.inc:249) ==3821== by 0x340FC84: clang::ASTDeclReader::Visit(clang::Decl*) (ASTReaderDecl.cpp:424) ==3821== by 0x34508E8: clang::ASTReader::ReadDeclRecord(unsigned int) (ASTReaderDecl.cpp:3331) ==3821== by 0x33BB0D1: clang::ASTReader::GetDecl(unsigned int) (ASTReader.cpp:6467) ==3821== ==3821== ==3821== HEAP SUMMARY: ==3821== in use at exit: 2,282,723 bytes in 1,677 blocks ==3821== total heap usage: 45,044 allocs, 43,367 frees, 43,814,411 bytes allocated ==3821== ==3821== LEAK SUMMARY: ==3821== definitely lost: 0 bytes in 0 blocks ==3821== indirectly lost: 0 bytes in 0 blocks ==3821== possibly lost: 27,456 bytes in 280 blocks ==3821== still reachable: 2,255,267 bytes in 1,397 blocks ==3821== suppressed: 0 bytes in 0 blocks ==3821== Rerun with --leak-check=full to see details of leaked memory ==3821== ==3821== For counts of detected and suppressed errors, rerun with: -v ==3821== ERROR SUMMARY: 15 errors from 1 contexts (suppressed: 0 from 0) -- You are receiving this mail because: You are on the CC list for the bug.
_______________________________________________ llvm-bugs mailing list llvm-bugs@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-bugs