r246534 - [modules] When emitting line tables, only emit filenames that are actually referenced by the entries that we emit.

Richard Smith via cfe-commits cfe-commits at lists.llvm.org
Tue Sep 1 12:34:56 PDT 2015


On Tue, Sep 1, 2015 at 1:12 AM, NAKAMURA Takumi <geek4civic at gmail.com>
wrote:

> FYI,
>
> MultiOnDiskHashTable.h:108       delete T;
> It is crashing.
>
> Modules/cxx-templates.cpp can fail if target is i686-pc-win32.
>

Does this happen when building with Clang, or just when building with MSVC?


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


More information about the cfe-commits mailing list