<div dir="rtl"><div dir="ltr">Hi Richard, </div><div dir="ltr"><br></div><div dir="ltr">Since yesterday I see several clang test failures which *may* be related to the series of patches of modules you comitted. These are:</div><div dir="ltr">             Clang :: Modules/cxx-templates.cpp<br></div><div dir="ltr"><div dir="ltr">             Clang :: Modules/submodules-merge-defs.cpp</div><div dir="ltr">             Clang :: PCH/cxx-key-functions.cpp</div><div dir="ltr">             Clang :: PCH/cxx-templates.cpp</div><div dir="ltr"><br></div><div>(failing as of r246534)</div><div><br></div><div>You can see these failing on clang-x64-ninja-win7 bot but you did not get e-mail since it was masked by other test failing before them:</div><div><br></div><div><a href="http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/4522">http://lab.llvm.org:8011/builders/clang-x64-ninja-win7/builds/4522</a><br></div><div><br></div><div>or on Takumi bot:</div><div><br></div><div><a href="http://bb.pgr.jp/builders/ninja-clang-i686-msc18-R/builds/2923">http://bb.pgr.jp/builders/ninja-clang-i686-msc18-R/builds/2923</a><br></div><div><br></div><div>The bots do not seem to printout details, so here is debug stack dump with symbols for the three tests failing. The fourth one prints huge AST.</div><div><br></div><div>Could you have a look?</div><div><br></div><div><br></div><div><div>  FAIL: Clang :: Modules/cxx-templates.cpp (4128 of 23311)</div><div>   ******************** TEST 'Clang :: Modules/cxx-templates.cpp' FAILED ********************</div><div>   Script:</div><div>   --</div><div>   rm -rf C:\llvm-clean\msvc\tools\clang\test\Modules\Output\cxx-templates.cpp.tmp</div><div>   not C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE -cc1 -internal-isystem C:\llvm-clean\msvc\RELWITHDEB</div><div>   INFO\bin\..\lib\clang\3.8.0\include -nostdsysteminc -x objective-c++ -fmodules -fimplicit-module-maps -fno-modules-error-recov</div><div>   ery -fmodules-cache-path=C:\llvm-clean\msvc\tools\clang\test\Modules\Output\cxx-templates.cpp.tmp -I C:\</div><div>   llvm-clean\tools\clang\test\Modules/Inputs C:\llvm-clean\tools\clang\test\Modules\cxx-templates.cpp -std=c++11 -ast</div><div>   -dump-lookups | C:/llvm-clean/msvc/RELWITHDEBINFO/bin\FileCheck.EXE C:\llvm-clean\tools\clang\test\Modul</div><div>   es\cxx-templates.cpp --check-prefix=CHECK-GLOBAL</div><div>   not C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE -cc1 -internal-isystem C:\llvm-clean\msvc\RELWITHDEB</div><div>   INFO\bin\..\lib\clang\3.8.0\include -nostdsysteminc -x objective-c++ -fmodules -fimplicit-module-maps -fno-modules-error-recov</div><div>   ery -fmodules-cache-path=C:\llvm-clean\msvc\tools\clang\test\Modules\Output\cxx-templates.cpp.tmp -I C:\</div><div>   llvm-clean\tools\clang\test\Modules/Inputs C:\llvm-clean\tools\clang\test\Modules\cxx-templates.cpp -std=c++11 -ast</div><div>   -dump-lookups -ast-dump-filter N | C:/llvm-clean/msvc/RELWITHDEBINFO/bin\FileCheck.EXE C:\llvm-clean\too</div><div>   ls\clang\test\Modules\cxx-templates.cpp --check-prefix=CHECK-NAMESPACE-N</div><div>   not C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE -cc1 -internal-isystem C:\llvm-clean\msvc\RELWITHDEB</div><div>   INFO\bin\..\lib\clang\3.8.0\include -nostdsysteminc -x objective-c++ -fmodules -fimplicit-module-maps -fno-modules-error-recov</div><div>   ery -fmodules-cache-path=C:\llvm-clean\msvc\tools\clang\test\Modules\Output\cxx-templates.cpp.tmp -I C:\</div><div>   llvm-clean\tools\clang\test\Modules/Inputs C:\llvm-clean\tools\clang\test\Modules\cxx-templates.cpp -std=c++11 -ast</div><div>   -dump -ast-dump-filter SomeTemplate | C:/llvm-clean/msvc/RELWITHDEBINFO/bin\FileCheck.EXE C:\llvm-clean\</div><div>   tools\clang\test\Modules\cxx-templates.cpp --check-prefix=CHECK-DUMP</div><div>   C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE -cc1 -internal-isystem C:\llvm-clean\msvc\RELWITHDEBINFO</div><div>   \bin\..\lib\clang\3.8.0\include -nostdsysteminc -x objective-c++ -fmodules -fimplicit-module-maps -fno-modules-error-recovery</div><div>   -fmodules-cache-path=C:\llvm-clean\msvc\tools\clang\test\Modules\Output\cxx-templates.cpp.tmp -I C:\llvm</div><div>   -clean\tools\clang\test\Modules/Inputs C:\llvm-clean\tools\clang\test\Modules\cxx-templates.cpp -verify -std=c++11</div><div>   C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE -cc1 -internal-isystem C:\llvm-clean\msvc\RELWITHDEBINFO</div><div>   \bin\..\lib\clang\3.8.0\include -nostdsysteminc -x objective-c++ -fmodules -fimplicit-module-maps -fno-modules-error-recovery</div><div>   -fmodules-cache-path=C:\llvm-clean\msvc\tools\clang\test\Modules\Output\cxx-templates.cpp.tmp -I C:\llvm</div><div>   -clean\tools\clang\test\Modules/Inputs C:\llvm-clean\tools\clang\test\Modules\cxx-templates.cpp -verify -std=c++11</div><div>   -DEARLY_IMPORT</div><div>   --</div><div>   Exit Code: 2</div><div><br></div><div>   Command Output (stdout):</div><div>   --</div><div>   Command 0: "rm" "-rf" "C:\llvm-clean\msvc\tools\clang\test\Modules\Output\cxx-templates.cpp.tmp"</div><div>   Command 0 Result: 0</div><div>   Command 0 Output:</div><div><br></div><div><br></div><div>   Command 0 Stderr:</div><div><br></div><div><br></div><div>   Command 1: "not" "C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE" "-cc1" "-internal-isystem" "C:\llvm-c</div><div>   lean\msvc\RELWITHDEBINFO\bin\..\lib\clang\3.8.0\include" "-nostdsysteminc" "-x" "objective-c++" "-fmodules" "-fimplicit-module</div><div>   -maps" "-fno-modules-error-recovery" "-fmodules-cache-path=C:\llvm-clean\msvc\tools\clang\test\Modules\Output\cxx-t</div><div>   emplates.cpp.tmp" "-I" "C:\llvm-clean\tools\clang\test\Modules/Inputs" "C:\llvm-clean\tools\clang\test\M</div><div>   odules\cxx-templates.cpp" "-std=c++11" "-ast-dump-lookups"</div><div>   Command 1 Result: 1</div><div>   Command 1 Output:</div><div><br></div><div><br></div><div>   Command 1 Stderr:</div><div>   0x0000000140F97571 (0x000000000358BCC0 0x000000000358B969 0x000000000358B920 0x0000000005F6E52F), llvm::OnDiskChainedHashTable</div><div>   <clang::serialization::reader::ASTDeclContextNameLookupTrait>::find_hashed() + 0x41 bytes(s), c:\llvm-clean\include</div><div>   \llvm\support\ondiskhashtable.h, line 330 + 0x4 byte(s)</div><div><br></div><div>   0x0000000140F96C42 (0x0000000005F6E52F 0x00000000027FB198 0x00000000027C3D08 0x00000000027C4B20), clang::serialization::MultiO</div><div>   nDiskHashTable<clang::serialization::reader::ASTDeclContextNameLookupTrait>::find() + 0x272 bytes(s), c:\llvm-clean</div><div>   \tools\clang\lib\serialization\multiondiskhashtable.h, line 228</div><div><br></div><div>   0x0000000140F6A104 (0x000000000358BD90 0x0000000004188190 0x0000000002512773 0x000000000358BD90), clang::ASTReader::FindExtern</div><div>   alVisibleDeclsByName() + 0x1D4 bytes(s), c:\llvm-clean\tools\clang\lib\serialization\astreader.cpp, line 6379 + 0x3</div><div>   3 byte(s)</div><div><br></div><div>   0x000000014180D523 (0x00000000027C3D08 0x000000000358BDE9 0x0000000002512773 0x0000000000000000), clang::DeclContext::lookup()</div><div>    + 0x213 bytes(s), c:\llvm-clean\tools\clang\lib\ast\declbase.cpp, line 1395 + 0x19 byte(s)</div><div><br></div><div>   0x0000000140F68C12 (0x000000000358C130 0x0000000000AF9BB8 0x0000000004198CE8 0x0000000004197FA0), clang::ASTReader::CompleteRe</div><div>   declChain() + 0x312 bytes(s), c:\llvm-clean\tools\clang\lib\serialization\astreader.cpp, line 5989</div><div><br></div><div>   0x00000001404D55E5 (0x0000000000000000 0x0000000004198CE8 0x0000000000000000 0x000000000358C180), clang::Redeclarable<clang::F</div><div>   unctionDecl>::DeclLink::getNext() + 0xC5 bytes(s), c:\llvm-clean\tools\clang\include\clang\ast\redeclarable.h, line</div><div>    74 + 0x4D byte(s)</div><div><br></div><div>   0x0000000141043943 (0x0000000004198750 0x0000000140FC8849 0x0000000000000003 0x000000000358C1C8), clang::ASTDeclWriter::VisitR</div><div>   edeclarable<clang::FunctionDecl>() + 0x43 bytes(s), c:\llvm-clean\tools\clang\lib\serialization\astwriterdecl.cpp,</div><div>   line 1555</div><div><br></div><div>   0x0000000141048BCC (0x00004F6B0F91720A 0x0000000004198CE8 0x00000000041A2BD0 0x000000000358C218), clang::ASTDeclWriter::VisitF</div><div>   unctionDecl() + 0x2C bytes(s), c:\llvm-clean\tools\clang\lib\serialization\astwriterdecl.cpp, line 477</div><div><br></div><div>   0x0000000141047116 (0x0000000140FE1B38 0x000000000358C2D0 0x000000000358C218 0x0000000004198CE8), clang::ASTDeclWriter::VisitC</div><div>   XXMethodDecl() + 0x26 bytes(s), c:\llvm-clean\tools\clang\lib\serialization\astwriterdecl.cpp, line 1154</div><div><br></div><div>   0x0000000141046B45 (0x00000000041A2BD0 0x000000000358C2D0 0x0000000004198D28 0x0000000000000000), clang::ASTDeclWriter::Visit(</div><div>   ) + 0x15 bytes(s), c:\llvm-clean\tools\clang\lib\serialization\astwriterdecl.cpp, line 263</div><div><br></div><div>   0x000000014104D750 (0x0000000000000003 0x000000000270EAC0 0x000000000270E420 0x000000000270EAC0), clang::ASTWriter::WriteDecl(</div><div>   ) + 0x1E0 bytes(s), c:\llvm-clean\tools\clang\lib\serialization\astwriterdecl.cpp, line 2134</div><div><br></div><div>   0x0000000140FD81D7 (0x000000000270E338 0x000000000280B920 0x000000000280B920 0x0000000000000000), clang::ASTWriter::WriteASTCo</div><div>   re() + 0x2A57 bytes(s), c:\llvm-clean\tools\clang\lib\serialization\astwriter.cpp, line 4422</div><div><br></div><div>   0x0000000140FD5735 (0x000000000270E320 0x000000000358F740 0x0000000142872250 0x0000000141AADE2A), clang::ASTWriter::WriteAST()</div><div>    + 0xB5 bytes(s), c:\llvm-clean\tools\clang\lib\serialization\astwriter.cpp, line 4079</div><div><br></div><div>   0x0000000140FB26BA (0x00000001428732F0 0x0000000000000003 0x0000000000000000 0x0000000140EDD970), clang::PCHGenerator::HandleT</div><div>   ranslationUnit() + 0xAA bytes(s), c:\llvm-clean\tools\clang\lib\serialization\generatepch.cpp, line 53</div><div><br></div><div>   0x000000014084447F (0x0000000000000003 0x000000000275B920 0x00000000027CD9C0 0x0000000000000000), clang::MultiplexConsumer::Ha</div><div>   ndleTranslationUnit() + 0x2AF bytes(s), c:\llvm-clean\tools\clang\lib\frontend\multiplexconsumer.cpp, line 295</div><div><br></div><div>   0x0000000140ED7995 (0x0000000000ABCD00 0x0000000000000000 0x0000000000ABCDB0 0x0000000000000000), clang::ParseAST() + 0x255 by</div><div>   tes(s), c:\llvm-clean\tools\clang\lib\parse\parseast.cpp, line 171</div><div><br></div><div>   0x0000000140807A63 (0x0000000000ABCDB0 0x0000000000000000 0x0000000000000000 0x0000000143A0E150), clang::ASTFrontendAction::Ex</div><div>   ecuteAction() + 0xE3 bytes(s), c:\llvm-clean\tools\clang\lib\frontend\frontendaction.cpp, line 540</div><div><br></div><div>   0x00000001408078D8 (0x0000000000000000 0x0000000000ABD070 0x0000000000ABD070 0x0000000000000000), clang::FrontendAction::Execu</div><div>   te() + 0x68 bytes(s), c:\llvm-clean\tools\clang\lib\frontend\frontendaction.cpp, line 444</div><div><br></div><div>   0x00000001407CF750 (0x0000000000000000 0x0000000141B251F2 0x0000000000000000 0x0000000000000000), clang::CompilerInstance::Exe</div><div>   cuteAction() + 0x2F0 bytes(s), c:\llvm-clean\tools\clang\lib\frontend\compilerinstance.cpp, line 831</div><div><br></div><div>   0x0000000141C3E645 (0x0000000000000000 0x000000000358F940 0x0000000000000000 0x00000000027CBAB0), llvm::CrashRecoveryContext::</div><div>   RunSafely() + 0x75 bytes(s), c:\llvm-clean\lib\support\crashrecoverycontext.cpp, line 329</div><div><br></div><div>   0x0000000141C3E6BF (0x0000000000000000 0x0000000000000000 0x00000000027CBAB0 0x0000000000000000), RunSafelyOnThread_Dispatch()</div><div>    + 0x1F bytes(s), c:\llvm-clean\lib\support\crashrecoverycontext.cpp, line 376 + 0x19 byte(s)</div><div><br></div><div>   0x000000014031C1CD (0x0000000000000000 0x0000000141B17255 0x0000000000000000 0x0000000000000000), ThreadCallback() + 0xD bytes</div><div>   (s), c:\llvm-clean\lib\support\threading.cpp, line 83</div><div><br></div><div>   0x0000000141B0F675 (0x0000000000000003 0x00000000027CBAB0 0x0000000000000000 0x0000000000000000), _callthreadstartex() + 0x25</div><div>   bytes(s), f:\dd\vctools\crt\crtw32\startup\threadex.c, line 376 + 0x17 byte(s)</div><div><br></div><div>   0x0000000141B0F8C7 (0x00000000027CBAB0 0x0000000000000000 0x0000000000000000 0x0000000000000000), _threadstartex() + 0xE7 byte</div><div>   s(s), f:\dd\vctools\crt\crtw32\startup\threadex.c, line 359</div><div><br></div><div>   0x0000000077A15A4D (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), BaseThreadInitThunk() + 0xD</div><div>   bytes(s)</div><div><br></div><div>   0x0000000077B4B831 (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), RtlUserThreadStart() + 0x21</div><div>   bytes(s)</div><div><br></div><div>1>CUSTOMBUILD : error :  [C:\llvm-clean\msvc\check-all.vcxproj]</div><div><br></div><div><br></div><div><br></div><div>   Command 2: "C:/llvm-clean/msvc/RELWITHDEBINFO/bin\FileCheck.EXE" "C:\llvm-clean\tools\clang\test\Modules</div><div>   \cxx-templates.cpp" "--check-prefix=CHECK-GLOBAL"</div><div>   Command 2 Result: 2</div><div>   Command 2 Output:</div><div><br></div><div><br></div><div>   Command 2 Stderr:</div><div>1>CUSTOMBUILD : FileCheck error : '-' is empty. [C:\llvm-clean\msvc\check-all.vcxproj]</div><div><br></div><div><br></div><div><br></div><div><br></div><div>   --</div><div><br></div><div>   ********************</div><div>   FAIL: Clang :: Modules/submodules-merge-defs.cpp (4278 of 23311)</div><div>   ******************** TEST 'Clang :: Modules/submodules-merge-defs.cpp' FAILED ********************</div><div>   Script:</div><div>   --</div><div>   rm -rf C:\llvm-clean\msvc\tools\clang\test\Modules\Output\submodules-merge-defs.cpp.tmp</div><div>   C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE -cc1 -internal-isystem C:\llvm-clean\msvc\RELWITHDEBINFO</div><div>   \bin\..\lib\clang\3.8.0\include -nostdsysteminc -x c++ -std=c++11 -fmodules-cache-path=C:\llvm-clean\msvc\tools\cla</div><div>   ng\test\Modules\Output\submodules-merge-defs.cpp.tmp -fmodules -fimplicit-module-maps -I C:\llvm-clean\tools\clang\</div><div>   test\Modules/Inputs/submodules-merge-defs C:\llvm-clean\tools\clang\test\Modules\submodules-merge-defs.cpp -verify</div><div>   -fno-modules-error-recovery -DTEXTUAL</div><div>   C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE -cc1 -internal-isystem C:\llvm-clean\msvc\RELWITHDEBINFO</div><div>   \bin\..\lib\clang\3.8.0\include -nostdsysteminc -x c++ -std=c++11 -fmodules-cache-path=C:\llvm-clean\msvc\tools\cla</div><div>   ng\test\Modules\Output\submodules-merge-defs.cpp.tmp -fmodules -fimplicit-module-maps -I C:\llvm-clean\tools\clang\</div><div>   test\Modules/Inputs/submodules-merge-defs C:\llvm-clean\tools\clang\test\Modules\submodules-merge-defs.cpp -verify</div><div>   -fno-modules-error-recovery</div><div>   C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE -cc1 -internal-isystem C:\llvm-clean\msvc\RELWITHDEBINFO</div><div>   \bin\..\lib\clang\3.8.0\include -nostdsysteminc -x c++ -std=c++11 -fmodules-cache-path=C:\llvm-clean\msvc\tools\cla</div><div>   ng\test\Modules\Output\submodules-merge-defs.cpp.tmp -fmodules -fimplicit-module-maps -I C:\llvm-clean\tools\clang\</div><div>   test\Modules/Inputs/submodules-merge-defs C:\llvm-clean\tools\clang\test\Modules\submodules-merge-defs.cpp -verify</div><div>   -fno-modules-error-recovery -fmodules-local-submodule-visibility -DTEXTUAL</div><div>   C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE -cc1 -internal-isystem C:\llvm-clean\msvc\RELWITHDEBINFO</div><div>   \bin\..\lib\clang\3.8.0\include -nostdsysteminc -x c++ -std=c++11 -fmodules-cache-path=C:\llvm-clean\msvc\tools\cla</div><div>   ng\test\Modules\Output\submodules-merge-defs.cpp.tmp -fmodules -fimplicit-module-maps -I C:\llvm-clean\tools\clang\</div><div>   test\Modules/Inputs/submodules-merge-defs C:\llvm-clean\tools\clang\test\Modules\submodules-merge-defs.cpp -verify</div><div>   -fno-modules-error-recovery -fmodules-local-submodule-visibility</div><div>   C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE -cc1 -internal-isystem C:\llvm-clean\msvc\RELWITHDEBINFO</div><div>   \bin\..\lib\clang\3.8.0\include -nostdsysteminc -x c++ -std=c++11 -fmodules-cache-path=C:\llvm-clean\msvc\tools\cla</div><div>   ng\test\Modules\Output\submodules-merge-defs.cpp.tmp -fimplicit-module-maps -I C:\llvm-clean\tools\clang\test\Modul</div><div>   es/Inputs/submodules-merge-defs C:\llvm-clean\tools\clang\test\Modules\submodules-merge-defs.cpp -verify -fno-modul</div><div>   es-error-recovery -fmodules-local-submodule-visibility -DTEXTUAL -DEARLY_INDIRECT_INCLUDE -fno-modules-hide-internal-linkage</div><div>   C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE -cc1 -internal-isystem C:\llvm-clean\msvc\RELWITHDEBINFO</div><div>   \bin\..\lib\clang\3.8.0\include -nostdsysteminc -x c++ -std=c++11 -fmodules-cache-path=C:\llvm-clean\msvc\tools\cla</div><div>   ng\test\Modules\Output\submodules-merge-defs.cpp.tmp -fmodules -fimplicit-module-maps -I C:\llvm-clean\tools\clang\</div><div>   test\Modules/Inputs/submodules-merge-defs C:\llvm-clean\tools\clang\test\Modules\submodules-merge-defs.cpp -verify</div><div>   -fno-modules-error-recovery -fmodules-local-submodule-visibility -fmodule-feature use_defs_twice -DIMPORT_USE_2</div><div>   --</div><div>   Exit Code: 3221225477</div><div><br></div><div>   Command Output (stdout):</div><div>   --</div><div>   Command 0: "rm" "-rf" "C:\llvm-clean\msvc\tools\clang\test\Modules\Output\submodules-merge-defs.cpp.tmp"</div><div>   Command 0 Result: 0</div><div>   Command 0 Output:</div><div><br></div><div><br></div><div>   Command 0 Stderr:</div><div><br></div><div><br></div><div>   Command 1: "C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE" "-cc1" "-internal-isystem" "C:\llvm-clean\m</div><div>   svc\RELWITHDEBINFO\bin\..\lib\clang\3.8.0\include" "-nostdsysteminc" "-x" "c++" "-std=c++11" "-fmodules-cache-path=C:\my\ceemp</div><div>   le\llvm-clean\msvc\tools\clang\test\Modules\Output\submodules-merge-defs.cpp.tmp" "-fmodules" "-fimplicit-module-maps" "-I" "C</div><div>   :\llvm-clean\tools\clang\test\Modules/Inputs/submodules-merge-defs" "C:\llvm-clean\tools\clang\test\Modu</div><div>   les\submodules-merge-defs.cpp" "-verify" "-fno-modules-error-recovery" "-DTEXTUAL"</div><div>   Command 1 Result: 3221225477</div><div>   Command 1 Output:</div><div><br></div><div><br></div><div>   Command 1 Stderr:</div><div>   0x00000001419D7571 (0x00000000033EF3C0 0x00000000033EF069 0x00000000033EF020 0x00000000B2269F88), llvm::OnDiskChainedHashTable</div><div>   <clang::serialization::reader::ASTDeclContextNameLookupTrait>::find_hashed() + 0x41 bytes(s), c:\llvm-clean\include</div><div>   \llvm\support\ondiskhashtable.h, line 330 + 0x4 byte(s)</div><div><br></div><div>   0x00000001419D6C42 (0x00000000B2269F88 0x0000000003560510 0x0000000003538EC8 0x0000000003539CE0), clang::serialization::MultiO</div><div>   nDiskHashTable<clang::serialization::reader::ASTDeclContextNameLookupTrait>::find() + 0x272 bytes(s), c:\llvm-clean</div><div>   \tools\clang\lib\serialization\multiondiskhashtable.h, line 228</div><div><br></div><div>   0x00000001419AA104 (0x00000000033EF4B0 0x0000000002660750 0x0000000003505100 0x00000000033EF4B0), clang::ASTReader::FindExtern</div><div>   alVisibleDeclsByName() + 0x1D4 bytes(s), c:\llvm-clean\tools\clang\lib\serialization\astreader.cpp, line 6379 + 0x3</div><div>   3 byte(s)</div><div><br></div><div>   0x000000014224D523 (0x0000000003538EC8 0x00000000033EF4D1 0x0000000003505100 0x0000000142481310), clang::DeclContext::lookup()</div><div>    + 0x213 bytes(s), c:\llvm-clean\tools\clang\lib\ast\declbase.cpp, line 1395 + 0x19 byte(s)</div><div><br></div><div>   0x0000000141B96CD0 (0x00000000026BA400 0x00000000026ADDD0 0x0000000000000000 0x00000000000039A0), clang::Sema::ActOnStartNames</div><div>   paceDef() + 0xB0 bytes(s), c:\llvm-clean\tools\clang\lib\sema\semadeclcxx.cpp, line 7215</div><div><br></div><div>   0x000000014198B873 (0x00000000026BA3F0 0x00000000026BA8A0 0x0000000000000000 0x0000000000000000), clang::Parser::ParseNamespac</div><div>   e() + 0x1473 bytes(s), c:\llvm-clean\tools\clang\lib\parse\parsedeclcxx.cpp, line 189</div><div><br></div><div>   0x000000014193293C (0x00000000026BA700 0x00000000026BA7B0 0x00000000033EFA70 0x00000000026BA3F0), clang::Parser::ParseDeclarat</div><div>   ion() + 0x1FC bytes(s), c:\llvm-clean\tools\clang\lib\parse\parsedecl.cpp, line 1479</div><div><br></div><div>   0x000000014191B358 (0x0000000000000000 0x00000000033EFB00 0x00000000033EFAC0 0x0000000000000000), clang::Parser::ParseExternal</div><div>   Declaration() + 0x488 bytes(s), c:\llvm-clean\tools\clang\lib\parse\parser.cpp, line 742 + 0x13 byte(s)</div><div><br></div><div>   0x000000014191D738 (0x0000000000000003 0x000000000351FA60 0x0000000000000000 0x00000000026BA3F0), clang::Parser::ParseTopLevel</div><div>   Decl() + 0xF8 bytes(s), c:\llvm-clean\tools\clang\lib\parse\parser.cpp, line 593</div><div><br></div><div>   0x000000014191793E (0x0000000000B6B300 0x0000000000000000 0x0000000000B6B310 0x0000000000000000), clang::ParseAST() + 0x1FE by</div><div>   tes(s), c:\llvm-clean\tools\clang\lib\parse\parseast.cpp, line 161 + 0x10 byte(s)</div><div><br></div><div>   0x0000000141247A63 (0x0000000000B6B310 0x0000000000000000 0x0000000000000000 0x000000014444E150), clang::ASTFrontendAction::Ex</div><div>   ecuteAction() + 0xE3 bytes(s), c:\llvm-clean\tools\clang\lib\frontend\frontendaction.cpp, line 540</div><div><br></div><div>   0x00000001412478D8 (0x0000000000000000 0x0000000000B6B5D0 0x0000000000B6B5D0 0x0000000000000000), clang::FrontendAction::Execu</div><div>   te() + 0x68 bytes(s), c:\llvm-clean\tools\clang\lib\frontend\frontendaction.cpp, line 444</div><div><br></div><div>   0x000000014120F750 (0x0000000000000000 0x00000001425651F2 0x0000000000000000 0x0000000000000000), clang::CompilerInstance::Exe</div><div>   cuteAction() + 0x2F0 bytes(s), c:\llvm-clean\tools\clang\lib\frontend\compilerinstance.cpp, line 831</div><div><br></div><div>   0x000000014267E645 (0x0000000000000000 0x00000000033EFCE0 0x0000000000000000 0x00000000026AB580), llvm::CrashRecoveryContext::</div><div>   RunSafely() + 0x75 bytes(s), c:\llvm-clean\lib\support\crashrecoverycontext.cpp, line 329</div><div><br></div><div>   0x000000014267E6BF (0x0000000000000000 0x0000000000000000 0x00000000026AB580 0x0000000000000000), RunSafelyOnThread_Dispatch()</div><div>    + 0x1F bytes(s), c:\llvm-clean\lib\support\crashrecoverycontext.cpp, line 376 + 0x19 byte(s)</div><div><br></div><div>   0x0000000140D5C1CD (0x0000000000000000 0x0000000142557255 0x0000000000000000 0x0000000000000000), ThreadCallback() + 0xD bytes</div><div>   (s), c:\llvm-clean\lib\support\threading.cpp, line 83</div><div><br></div><div>   0x000000014254F675 (0x0000000000000003 0x00000000026AB580 0x0000000000000000 0x0000000000000000), _callthreadstartex() + 0x25</div><div>   bytes(s), f:\dd\vctools\crt\crtw32\startup\threadex.c, line 376 + 0x17 byte(s)</div><div><br></div><div>   0x000000014254F8C7 (0x00000000026AB580 0x0000000000000000 0x0000000000000000 0x0000000000000000), _threadstartex() + 0xE7 byte</div><div>   s(s), f:\dd\vctools\crt\crtw32\startup\threadex.c, line 359</div><div><br></div><div>   0x0000000077A15A4D (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), BaseThreadInitThunk() + 0xD</div><div>   bytes(s)</div><div><br></div><div>   0x0000000077B4B831 (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), RtlUserThreadStart() + 0x21</div><div>   bytes(s)</div><div><br></div><div><br></div><div><br></div><div><br></div><div>   --</div><div><br></div><div>   ********************</div><div>   FAIL: Clang :: PCH/cxx-key-functions.cpp (4553 of 23311)</div><div>   ******************** TEST 'Clang :: PCH/cxx-key-functions.cpp' FAILED ********************</div><div>   Script:</div><div>   --</div><div>   C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE -cc1 -internal-isystem C:\llvm-clean\msvc\RELWITHDEBINFO</div><div>   \bin\..\lib\clang\3.8.0\include -nostdsysteminc -x c++ -include C:\llvm-clean\tools\clang\test\PCH\cxx-key-function</div><div>   s.cpp -emit-llvm-only C:\llvm-clean\tools\clang\test\PCH\cxx-key-functions.cpp</div><div>   C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE -cc1 -internal-isystem C:\llvm-clean\msvc\RELWITHDEBINFO</div><div>   \bin\..\lib\clang\3.8.0\include -nostdsysteminc -x c++ -emit-pch C:\llvm-clean\tools\clang\test\PCH\cxx-key-functio</div><div>   ns.cpp -o C:\llvm-clean\msvc\tools\clang\test\PCH\Output\cxx-key-functions.cpp.tmp</div><div>   C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE -cc1 -internal-isystem C:\llvm-clean\msvc\RELWITHDEBINFO</div><div>   \bin\..\lib\clang\3.8.0\include -nostdsysteminc -include-pch C:\llvm-clean\msvc\tools\clang\test\PCH\Output\cxx-key</div><div>   -functions.cpp.tmp -emit-llvm-only C:\llvm-clean\tools\clang\test\PCH\cxx-key-functions.cpp</div><div>   --</div><div>   Exit Code: 2147483651</div><div><br></div><div>   Command Output (stdout):</div><div>   --</div><div>   Command 0: "C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE" "-cc1" "-internal-isystem" "C:\llvm-clean\m</div><div>   svc\RELWITHDEBINFO\bin\..\lib\clang\3.8.0\include" "-nostdsysteminc" "-x" "c++" "-include" "C:\llvm-clean\tools\cla</div><div>   ng\test\PCH\cxx-key-functions.cpp" "-emit-llvm-only" "C:\llvm-clean\tools\clang\test\PCH\cxx-key-functions.cpp"</div><div>   Command 0 Result: 0</div><div>   Command 0 Output:</div><div><br></div><div><br></div><div>   Command 0 Stderr:</div><div><br></div><div><br></div><div>   Command 1: "C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE" "-cc1" "-internal-isystem" "C:\llvm-clean\m</div><div>   svc\RELWITHDEBINFO\bin\..\lib\clang\3.8.0\include" "-nostdsysteminc" "-x" "c++" "-emit-pch" "C:\llvm-clean\tools\cl</div><div>   ang\test\PCH\cxx-key-functions.cpp" "-o" "C:\llvm-clean\msvc\tools\clang\test\PCH\Output\cxx-key-functions.cpp.tmp"</div><div>   Command 1 Result: 0</div><div>   Command 1 Output:</div><div><br></div><div><br></div><div>   Command 1 Stderr:</div><div><br></div><div><br></div><div>   Command 2: "C:/llvm-clean/msvc/RELWITHDEBINFO/bin/clang.EXE" "-cc1" "-internal-isystem" "C:\llvm-clean\m</div><div>   svc\RELWITHDEBINFO\bin\..\lib\clang\3.8.0\include" "-nostdsysteminc" "-include-pch" "C:\llvm-clean\msvc\tools\clang</div><div>   \test\PCH\Output\cxx-key-functions.cpp.tmp" "-emit-llvm-only" "C:\llvm-clean\tools\clang\test\PCH\cxx-key-functions</div><div>   .cpp"</div><div>   Command 2 Result: 2147483651</div><div>   Command 2 Output:</div><div><br></div><div><br></div><div>   Command 2 Stderr:</div><div>   0x00000001426DFB40 (0x0000000000D4BC30 0x0000000000D35D00 0x000000000250AE48 0x0000000000000001), operator delete() + 0xA0 byt</div><div>   es(s), f:\dd\vctools\crt\crtw32\misc\dbgdel.cpp, line 52 + 0x71 byte(s)</div><div><br></div><div>   0x0000000141B82BC1 (0x000000000250AE40 0x000000000250B9E0 0x000000000252CC00 0x0000000000000001), clang::serialization::MultiO</div><div>   nDiskHashTable<clang::serialization::reader::ASTDeclContextNameLookupTrait>::clear() + 0xA1 bytes(s), c:\llvm-clean</div><div>   \tools\clang\lib\serialization\multiondiskhashtable.h, line 107</div><div><br></div><div>   0x0000000141B53C62 (0x000000000250AE40 0x0000000000D94B98 0x0000000002502C70 0x0000000142703132), clang::serialization::MultiO</div><div>   nDiskHashTable<clang::serialization::reader::ASTDeclContextNameLookupTrait>::~MultiOnDiskHashTable<clang::serialization::reade</div><div>   r::ASTDeclContextNameLookupTrait>() + 0x12 bytes(s), c:\llvm-clean\tools\clang\lib\serialization\multiondiskhashtab</div><div>   le.h, line 172 + 0x12 byte(s)</div><div><br></div><div>   0x0000000141B53B78 (0x0000000000D96540 0x0000000000D52030 0x0000000000D93BA0 0x00000001426EDD11), llvm::DenseMap<clang::DeclCo</div><div>   ntext const * __ptr64,clang::serialization::reader::DeclContextLookupTable,llvm::DenseMapInfo<clang::DeclContext const * __ptr</div><div>   64>,llvm::detail::DenseMapPair<clang::DeclContext const * __ptr64,clang::serialization::reader::DeclContextLookupTable> >::~De</div><div>   nseMap<clang::DeclContext const * __ptr64,clang::serialization::reader::DeclContextLookupTable,llvm::DenseMapInfo<clang::DeclC</div><div>   ontext const * __ptr64>,llvm::detail::DenseMapPair<clang::DeclContext cons?() + 0x48 bytes(s), c:\llvm-clean\includ</div><div>   e\llvm\adt\densemap.h, line 574 + 0x3C byte(s)</div><div><br></div><div>   0x0000000141B5473A (0x0000000000D35E60 0x0000000000000001 0x0000000000D35D00 0x0000000000000001), clang::ASTReader::~ASTReader</div><div>   () + 0x60A bytes(s), c:\llvm-clean\tools\clang\lib\serialization\astreader.cpp, line 8408 + 0x597 byte(s)</div><div><br></div><div>   0x0000000141B58704 (0x0000000000D93BA0 0x0000000000D35D00 0x0000000000D35D00 0x0000000000D52030), clang::ASTReader::`scalar de</div><div>   leting destructor'() + 0x14 bytes(s)</div><div><br></div><div>   0x00000001413BE06F (0x0000000000000001 0x0000000000D52030 0x0000000000D52000 0x0000000000D93390), clang::CompilerInstance::~Co</div><div>   mpilerInstance() + 0x12F bytes(s), c:\llvm-clean\tools\clang\lib\frontend\compilerinstance.cpp, line 64 + 0xF0 byte</div><div>   (s)</div><div><br></div><div>   0x00000001413BEFC4 (0x0000000000D35D00 0x0000000000D35E60 0x0000000000D53C10 0x0000000000000001), clang::CompilerInstance::`sc</div><div>   alar deleting destructor'() + 0x14 bytes(s)</div><div><br></div><div>   0x000000013FCAD2E1 (0x0000000000AFE8F0 0x0000000000AFE888 0x0000000000000000 0x0000000000AFE8F0), cc1_main() + 0x471 bytes(s),</div><div>    c:\llvm-clean\tools\clang\tools\driver\cc1_main.cpp, line 139 + 0x99 byte(s)</div><div><br></div><div>   0x000000013FCA4894 (0x0000000000000009 0x0000000000D4FF3B 0x0000000000AFE900 0x0000000000000000), ExecuteCC1Tool() + 0x94 byte</div><div>   s(s), c:\llvm-clean\tools\clang\tools\driver\driver.cpp, line 387</div><div><br></div><div>   0x000000013FCA90BB (0x0000000000000001 0x0000000000000000 0x0000000000000000 0x0000000000000000), main() + 0x59B bytes(s), c:\</div><div>   llvm-clean\tools\clang\tools\driver\driver.cpp, line 443 + 0x7F byte(s)</div><div><br></div><div>   0x00000001426E508C (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), __tmainCRTStartup() + 0xEC b</div><div>   ytes(s), f:\dd\vctools\crt\crtw32\startup\crt0.c, line 255 + 0x19 byte(s)</div><div><br></div><div>   0x00000001426E51CE (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), mainCRTStartup() + 0xE bytes</div><div>   (s), f:\dd\vctools\crt\crtw32\startup\crt0.c, line 165</div><div><br></div><div>   0x0000000077A15A4D (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), BaseThreadInitThunk() + 0xD</div><div>   bytes(s)</div><div><br></div><div>   0x0000000077B4B831 (0x0000000000000000 0x0000000000000000 0x0000000000000000 0x0000000000000000), RtlUserThreadStart() + 0x21</div><div>   bytes(s)</div><div><br></div><div><br></div><div><br></div></div></div><div class="gmail_extra"><br><div class="gmail_quote"><div dir="ltr">2015-09-01 10:41 GMT+03:00 Richard Smith via cfe-commits <span dir="ltr"><<a href="mailto:cfe-commits@lists.llvm.org" target="_blank">cfe-commits@lists.llvm.org</a>></span>:</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Author: rsmith<br>
Date: Tue Sep  1 02:41:55 2015<br>
New Revision: 246534<br>
<br>
URL: <a href="http://llvm.org/viewvc/llvm-project?rev=246534&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=246534&view=rev</a><br>
Log:<br>
[modules] When emitting line tables, only emit filenames that are actually referenced by the entries that we emit.<br>
<br>
Modified:<br>
    cfe/trunk/lib/Serialization/ASTReader.cpp<br>
    cfe/trunk/lib/Serialization/ASTWriter.cpp<br>
<br>
Modified: cfe/trunk/lib/Serialization/ASTReader.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReader.cpp?rev=246534&r1=246533&r2=246534&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTReader.cpp?rev=246534&r1=246533&r2=246534&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Serialization/ASTReader.cpp (original)<br>
+++ cfe/trunk/lib/Serialization/ASTReader.cpp Tue Sep  1 02:41:55 2015<br>
@@ -1058,11 +1058,12 @@ bool ASTReader::ParseLineTable(ModuleFil<br>
<br>
   // Parse the file names<br>
   std::map<int, int> FileIDs;<br>
-  for (int I = 0, N = Record[Idx++]; I != N; ++I) {<br>
+  for (unsigned I = 0; Record[Idx]; ++I) {<br>
     // Extract the file name<br>
     auto Filename = ReadPath(F, Record, Idx);<br>
     FileIDs[I] = LineTable.getLineTableFilenameID(Filename);<br>
   }<br>
+  ++Idx;<br>
<br>
   // Parse the line entries<br>
   std::vector<LineEntry> Entries;<br>
@@ -1074,7 +1075,7 @@ bool ASTReader::ParseLineTable(ModuleFil<br>
<br>
     // Extract the line entries<br>
     unsigned NumEntries = Record[Idx++];<br>
-    assert(NumEntries && "Numentries is 00000");<br>
+    assert(NumEntries && "no line entries for file ID");<br>
     Entries.clear();<br>
     Entries.reserve(NumEntries);<br>
     for (unsigned I = 0; I != NumEntries; ++I) {<br>
<br>
Modified: cfe/trunk/lib/Serialization/ASTWriter.cpp<br>
URL: <a href="http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTWriter.cpp?rev=246534&r1=246533&r2=246534&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/cfe/trunk/lib/Serialization/ASTWriter.cpp?rev=246534&r1=246533&r2=246534&view=diff</a><br>
==============================================================================<br>
--- cfe/trunk/lib/Serialization/ASTWriter.cpp (original)<br>
+++ cfe/trunk/lib/Serialization/ASTWriter.cpp Tue Sep  1 02:41:55 2015<br>
@@ -1981,10 +1981,19 @@ void ASTWriter::WriteSourceManagerBlock(<br>
     LineTableInfo &LineTable = SourceMgr.getLineTable();<br>
<br>
     Record.clear();<br>
-    // Emit the file names.<br>
-    Record.push_back(LineTable.getNumFilenames());<br>
-    for (unsigned I = 0, N = LineTable.getNumFilenames(); I != N; ++I)<br>
-      AddPath(LineTable.getFilename(I), Record);<br>
+<br>
+    // Emit the needed file names.<br>
+    llvm::DenseMap<int, int> FilenameMap;<br>
+    for (const auto &L : LineTable) {<br>
+      if (<a href="http://L.first.ID" rel="noreferrer" target="_blank">L.first.ID</a> < 0)<br>
+        continue;<br>
+      for (auto &LE : L.second) {<br>
+        if (FilenameMap.insert(std::make_pair(LE.FilenameID,<br>
+                                              FilenameMap.size())).second)<br>
+          AddPath(LineTable.getFilename(LE.FilenameID), Record);<br>
+      }<br>
+    }<br>
+    Record.push_back(0);<br>
<br>
     // Emit the line entries<br>
     for (LineTableInfo::iterator L = LineTable.begin(), LEnd = LineTable.end();<br>
@@ -2003,11 +2012,12 @@ void ASTWriter::WriteSourceManagerBlock(<br>
            LE != LEEnd; ++LE) {<br>
         Record.push_back(LE->FileOffset);<br>
         Record.push_back(LE->LineNo);<br>
-        Record.push_back(LE->FilenameID);<br>
+        Record.push_back(FilenameMap[LE->FilenameID]);<br>
         Record.push_back((unsigned)LE->FileKind);<br>
         Record.push_back(LE->IncludeOffset);<br>
       }<br>
     }<br>
+<br>
     Stream.EmitRecord(SOURCE_MANAGER_LINE_TABLE, Record);<br>
   }<br>
 }<br>
<br>
<br>
_______________________________________________<br>
cfe-commits mailing list<br>
<a href="mailto:cfe-commits@lists.llvm.org">cfe-commits@lists.llvm.org</a><br>
<a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits</a><br>
</blockquote></div><br></div></div>