I think there’s a function in lit called pythonize_bool which serves this purpose (ie it can handle 0, off, etc)<br><br>But i need to submit it at the same time alongside another fix, so I’ll do it in a bit<br><div class="gmail_quote"><div dir="ltr">On Tue, Mar 20, 2018 at 3:50 AM Hans Wennborg <<a href="mailto:hans@chromium.org">hans@chromium.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On Tue, Mar 20, 2018 at 11:19 AM, Hans Wennborg <<a href="mailto:hans@chromium.org" target="_blank">hans@chromium.org</a>> wrote:<br>
> On Mon, Mar 19, 2018 at 9:40 PM, Zachary Turner via llvm-commits<br>
> <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br>
>> Is there anything you can do to help figure out why this REQUIRES line is<br>
>> evaluating to the wrong value?<br>
>><br>
>> It starts from lld/test/<a href="http://lit.site.cfg.py.in" rel="noreferrer" target="_blank">lit.site.cfg.py.in</a>, which has this line:<br>
>><br>
>> config.have_dia_sdk = "@LLVM_ENABLE_DIA_SDK@"<br>
>><br>
>> That *should* get processed at CMake time and turns into<br>
>> <output_dir>/tools/lld/test/<a href="http://lit.site.cfg.py" rel="noreferrer" target="_blank">lit.site.cfg.py</a>:<br>
>><br>
>> config.have_dia_sdk = "OFF"<br>
>><br>
>> Then, in lld/test/<a href="http://lit.cfg.py" rel="noreferrer" target="_blank">lit.cfg.py</a>, we have this block:<br>
>><br>
>> if config.have_dia_sdk:<br>
>>     config.available_features.add("diasdk")<br>
>><br>
>> which should get ignored on this bot.<br>
>><br>
>> But this line is executing, so it makes me think the pre-processing step is<br>
>> setting the value to "ON", which would make no sense to me.<br>
>><br>
>> If you can offer some insight into why this might be happening that would<br>
>> help.<br>
><br>
> In this case, config.have_dia_sdk was set to "0", i.e. a string value<br>
> which converts to true :-)<br>
><br>
> I see this was modeled after config.llvm_libxml2_enabled which is also<br>
> a string. I've fixed that in r327964. Dropping the quotes around<br>
> @LLVM_ENABLE_DIA_SDK@ in your patch should make it work.<br>
<br>
Actually, my change didn't work because the libxml2 cmake var doesn't<br>
expand to 0 or 1: it expands to nothing or 1.<br>
<br>
I've reverted my change. I suppose the easiest way to make yours work<br>
is to check for '1' in the if-statement like the code for<br>
llvm_libxml2_enabled does.<br>
<br>
>> On Mon, Mar 19, 2018 at 1:32 PM Zachary Turner <<a href="mailto:zturner@google.com" target="_blank">zturner@google.com</a>> wrote:<br>
>>><br>
>>> Hmm, this test should not even be running on these platforms due to the<br>
>>> `REQUIRES: diasdk` line.<br>
>>><br>
>>> On Mon, Mar 19, 2018 at 1:29 PM Galina Kistanova <<a href="mailto:gkistanova@gmail.com" target="_blank">gkistanova@gmail.com</a>><br>
>>> wrote:<br>
>>>><br>
>>>> Hello Zachary,<br>
>>>><br>
>>>> This commit added broken test one of our builders:<br>
>>>><br>
>>>> <a href="http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast" rel="noreferrer" target="_blank">http://lab.llvm.org:8011/builders/llvm-clang-lld-x86_64-scei-ps4-ubuntu-fast</a><br>
>>>> . . .<br>
>>>> Failing Tests (2):<br>
>>>>    . . .<br>
>>>>     lld :: COFF/pdb-natvis.test<br>
>>>><br>
>>>> Please have a look?<br>
>>>><br>
>>>> The builder was already red and did not send notifications on this.<br>
>>>><br>
>>>> Thanks<br>
>>>><br>
>>>><br>
>>>> Galina<br>
>>>><br>
>>>> On Mon, Mar 19, 2018 at 12:53 PM, Zachary Turner via llvm-commits<br>
>>>> <<a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a>> wrote:<br>
>>>>><br>
>>>>> Author: zturner<br>
>>>>> Date: Mon Mar 19 12:53:51 2018<br>
>>>>> New Revision: 327895<br>
>>>>><br>
>>>>> URL: <a href="http://llvm.org/viewvc/llvm-project?rev=327895&view=rev" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project?rev=327895&view=rev</a><br>
>>>>> Log:<br>
>>>>> Support embedding natvis files in PDBs.<br>
>>>>><br>
>>>>> Natvis is a debug language supported by Visual Studio for<br>
>>>>> specifying custom visualizers.  The /NATVIS option is an<br>
>>>>> undocumented link.exe flag which will take a .natvis file<br>
>>>>> and "inject" it into the PDB.  This way, you can ship the<br>
>>>>> debug visualizers for a program along with the PDB, which<br>
>>>>> is very useful for postmortem debugging.<br>
>>>>><br>
>>>>> This is implemented by adding a new "named stream" to the<br>
>>>>> PDB with a special name of /src/files/<natvis file name><br>
>>>>> and simply copying the contents of the xml into this file.<br>
>>>>><br>
>>>>> Additionally, we need to emit a single stream named<br>
>>>>> /src/headerblock which contains a hash table of embedded<br>
>>>>> files to records describing them.<br>
>>>>><br>
>>>>> This patch adds this functionality, including the /NATVIS<br>
>>>>> option to lld-link.<br>
>>>>><br>
>>>>> Differential Revision: <a href="https://reviews.llvm.org/D44328" rel="noreferrer" target="_blank">https://reviews.llvm.org/D44328</a><br>
>>>>><br>
>>>>> Added:<br>
>>>>>     lld/trunk/test/COFF/Inputs/generic.yaml<br>
>>>>>     lld/trunk/test/COFF/Inputs/natvis-1.natvis<br>
>>>>>     lld/trunk/test/COFF/Inputs/natvis-2.natvis<br>
>>>>>     lld/trunk/test/COFF/Inputs/natvis-3.natvis<br>
>>>>>     lld/trunk/test/COFF/pdb-natvis.test<br>
>>>>> Modified:<br>
>>>>>     lld/trunk/COFF/Config.h<br>
>>>>>     lld/trunk/COFF/Driver.cpp<br>
>>>>>     lld/trunk/COFF/Options.td<br>
>>>>>     lld/trunk/COFF/PDB.cpp<br>
>>>>>     lld/trunk/test/<a href="http://lit.cfg.py" rel="noreferrer" target="_blank">lit.cfg.py</a><br>
>>>>>     lld/trunk/test/<a href="http://lit.site.cfg.py.in" rel="noreferrer" target="_blank">lit.site.cfg.py.in</a><br>
>>>>><br>
>>>>> Modified: lld/trunk/COFF/Config.h<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Config.h?rev=327895&r1=327894&r2=327895&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Config.h?rev=327895&r1=327894&r2=327895&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- lld/trunk/COFF/Config.h (original)<br>
>>>>> +++ lld/trunk/COFF/Config.h Mon Mar 19 12:53:51 2018<br>
>>>>> @@ -99,6 +99,7 @@ struct Configuration {<br>
>>>>>    bool DebugGHashes = false;<br>
>>>>>    bool ShowTiming = false;<br>
>>>>>    unsigned DebugTypes = static_cast<unsigned>(DebugType::None);<br>
>>>>> +  std::vector<std::string> NatvisFiles;<br>
>>>>>    llvm::SmallString<128> PDBPath;<br>
>>>>>    std::vector<llvm::StringRef> Argv;<br>
>>>>><br>
>>>>><br>
>>>>> Modified: lld/trunk/COFF/Driver.cpp<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Driver.cpp?rev=327895&r1=327894&r2=327895&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Driver.cpp?rev=327895&r1=327894&r2=327895&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- lld/trunk/COFF/Driver.cpp (original)<br>
>>>>> +++ lld/trunk/COFF/Driver.cpp Mon Mar 19 12:53:51 2018<br>
>>>>> @@ -933,9 +933,12 @@ void LinkerDriver::link(ArrayRef<const c<br>
>>>>><br>
>>>>>    // Handle /pdb<br>
>>>>>    bool ShouldCreatePDB = Args.hasArg(OPT_debug, OPT_debug_ghash);<br>
>>>>> -  if (ShouldCreatePDB)<br>
>>>>> +  if (ShouldCreatePDB) {<br>
>>>>>      if (auto *Arg = Args.getLastArg(OPT_pdb))<br>
>>>>>        Config->PDBPath = Arg->getValue();<br>
>>>>> +    if (Args.hasArg(OPT_natvis))<br>
>>>>> +      Config->NatvisFiles = Args.getAllArgValues(OPT_natvis);<br>
>>>>> +  }<br>
>>>>><br>
>>>>>    // Handle /noentry<br>
>>>>>    if (Args.hasArg(OPT_noentry)) {<br>
>>>>><br>
>>>>> Modified: lld/trunk/COFF/Options.td<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Options.td?rev=327895&r1=327894&r2=327895&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/Options.td?rev=327895&r1=327894&r2=327895&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- lld/trunk/COFF/Options.td (original)<br>
>>>>> +++ lld/trunk/COFF/Options.td Mon Mar 19 12:53:51 2018<br>
>>>>> @@ -45,6 +45,7 @@ def nodefaultlib : P<"nodefaultlib", "Re<br>
>>>>>  def opt     : P<"opt", "Control optimizations">;<br>
>>>>>  def order   : P<"order", "Put functions in order">;<br>
>>>>>  def out     : P<"out", "Path to file to write output">;<br>
>>>>> +def natvis : P<"natvis", "Path to natvis file to embed in the PDB">;<br>
>>>>>  def pdb : P<"pdb", "PDB file path">;<br>
>>>>>  def section : P<"section", "Specify section attributes">;<br>
>>>>>  def stack   : P<"stack", "Size of the stack">;<br>
>>>>> @@ -162,7 +163,6 @@ def delay : QF<"delay">;<br>
>>>>>  def errorreport : QF<"errorreport">;<br>
>>>>>  def idlout : QF<"idlout">;<br>
>>>>>  def maxilksize : QF<"maxilksize">;<br>
>>>>> -def natvis : QF<"natvis">;<br>
>>>>>  def pdbaltpath : QF<"pdbaltpath">;<br>
>>>>>  def tlbid : QF<"tlbid">;<br>
>>>>>  def tlbout : QF<"tlbout">;<br>
>>>>><br>
>>>>> Modified: lld/trunk/COFF/PDB.cpp<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/PDB.cpp?rev=327895&r1=327894&r2=327895&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/COFF/PDB.cpp?rev=327895&r1=327894&r2=327895&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- lld/trunk/COFF/PDB.cpp (original)<br>
>>>>> +++ lld/trunk/COFF/PDB.cpp Mon Mar 19 12:53:51 2018<br>
>>>>> @@ -90,6 +90,9 @@ public:<br>
>>>>>    /// Emit the basic PDB structure: initial streams, headers, etc.<br>
>>>>>    void initialize(const llvm::codeview::DebugInfo &BuildId);<br>
>>>>><br>
>>>>> +  /// Add natvis files specified on the command line.<br>
>>>>> +  void addNatvisFiles();<br>
>>>>> +<br>
>>>>>    /// Link CodeView from each object file in the symbol table into the<br>
>>>>> PDB.<br>
>>>>>    void addObjectsToPDB();<br>
>>>>><br>
>>>>> @@ -961,6 +964,18 @@ void PDBLinker::addObjectsToPDB() {<br>
>>>>>    }<br>
>>>>>  }<br>
>>>>><br>
>>>>> +void PDBLinker::addNatvisFiles() {<br>
>>>>> +  for (StringRef File : Config->NatvisFiles) {<br>
>>>>> +    ErrorOr<std::unique_ptr<MemoryBuffer>> DataOrErr =<br>
>>>>> +        MemoryBuffer::getFile(File);<br>
>>>>> +    if (!DataOrErr) {<br>
>>>>> +      warn("Cannot open input file: " + File);<br>
>>>>> +      continue;<br>
>>>>> +    }<br>
>>>>> +    Builder.addInjectedSource(File, std::move(*DataOrErr));<br>
>>>>> +  }<br>
>>>>> +}<br>
>>>>> +<br>
>>>>>  static void addCommonLinkerModuleSymbols(StringRef Path,<br>
>>>>><br>
>>>>> pdb::DbiModuleDescriptorBuilder &Mod,<br>
>>>>>                                           BumpPtrAllocator &Allocator) {<br>
>>>>> @@ -1041,6 +1056,7 @@ void coff::createPDB(SymbolTable *Symtab<br>
>>>>>    PDB.initialize(BuildId);<br>
>>>>>    PDB.addObjectsToPDB();<br>
>>>>>    PDB.addSections(OutputSections, SectionTable);<br>
>>>>> +  PDB.addNatvisFiles();<br>
>>>>><br>
>>>>>    ScopedTimer T2(DiskCommitTimer);<br>
>>>>>    PDB.commit();<br>
>>>>><br>
>>>>> Added: lld/trunk/test/COFF/Inputs/generic.yaml<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/generic.yaml?rev=327895&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/generic.yaml?rev=327895&view=auto</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- lld/trunk/test/COFF/Inputs/generic.yaml (added)<br>
>>>>> +++ lld/trunk/test/COFF/Inputs/generic.yaml Mon Mar 19 12:53:51 2018<br>
>>>>> @@ -0,0 +1,282 @@<br>
>>>>> +--- !COFF<br>
>>>>> +header:<br>
>>>>> +  Machine:         IMAGE_FILE_MACHINE_AMD64<br>
>>>>> +  Characteristics: [  ]<br>
>>>>> +sections:<br>
>>>>> +  - Name:            .text<br>
>>>>> +    Characteristics: [ IMAGE_SCN_CNT_CODE, IMAGE_SCN_MEM_EXECUTE,<br>
>>>>> IMAGE_SCN_MEM_READ ]<br>
>>>>> +    Alignment:       16<br>
>>>>> +    SectionData:<br>
>>>>> 4883EC1831C0C7442414000000004889542408894C24044883C418C3<br>
>>>>> +  - Name:            .data<br>
>>>>> +    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,<br>
>>>>> IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]<br>
>>>>> +    Alignment:       4<br>
>>>>> +    SectionData:     ''<br>
>>>>> +  - Name:            .bss<br>
>>>>> +    Characteristics: [ IMAGE_SCN_CNT_UNINITIALIZED_DATA,<br>
>>>>> IMAGE_SCN_MEM_READ, IMAGE_SCN_MEM_WRITE ]<br>
>>>>> +    Alignment:       4<br>
>>>>> +    SectionData:     ''<br>
>>>>> +  - Name:            .xdata<br>
>>>>> +    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,<br>
>>>>> IMAGE_SCN_MEM_READ ]<br>
>>>>> +    Alignment:       4<br>
>>>>> +    SectionData:     '0104010004220000'<br>
>>>>> +  - Name:            .drectve<br>
>>>>> +    Characteristics: [ IMAGE_SCN_LNK_INFO, IMAGE_SCN_LNK_REMOVE ]<br>
>>>>> +    Alignment:       1<br>
>>>>> +    SectionData:<br>
>>>>> 202F44454641554C544C49423A6C6962636D742E6C6962202F44454641554C544C49423A6F6C646E616D65732E6C6962<br>
>>>>> +  - Name:            '.debug$S'<br>
>>>>> +    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,<br>
>>>>> IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]<br>
>>>>> +    Alignment:       4<br>
>>>>> +    SectionData:<br>
>>>>> 04000000F10000002F0000002D003C1101000000D0000700000000000000581B000000000000636C616E672076657273696F6E20372E302E30200000F1000000760000002A0047110000000000000000000000001C000000000000000000000003100000000000000000006D61696E000D003E117400000001006172676300120045114F0100000400000017000000000005000D003E110010000001006172677600120045114F01000008000000170000000000050002004F110000F20000002800000000000000000000001C00000000000000020000001C00000000000000020000001700000003000000F40000001800000001000000100139E9A066A1995A99DD01F5A392F26D7C0000F30000003000000000443A5C7372635C6C6C766D6275696C645C636C5C52656C656173655C7836345C67656E657269632E63707000000000<br>
>>>>> +    Subsections:<br>
>>>>> +      - !Symbols<br>
>>>>> +        Records:<br>
>>>>> +          - Kind:            S_COMPILE3<br>
>>>>> +            Compile3Sym:<br>
>>>>> +              Flags:           [  ]<br>
>>>>> +              Machine:         X64<br>
>>>>> +              FrontendMajor:   7<br>
>>>>> +              FrontendMinor:   0<br>
>>>>> +              FrontendBuild:   0<br>
>>>>> +              FrontendQFE:     0<br>
>>>>> +              BackendMajor:    7000<br>
>>>>> +              BackendMinor:    0<br>
>>>>> +              BackendBuild:    0<br>
>>>>> +              BackendQFE:      0<br>
>>>>> +              Version:         'clang version 7.0.0 '<br>
>>>>> +      - !Symbols<br>
>>>>> +        Records:<br>
>>>>> +          - Kind:            S_GPROC32_ID<br>
>>>>> +            ProcSym:<br>
>>>>> +              CodeSize:        28<br>
>>>>> +              DbgStart:        0<br>
>>>>> +              DbgEnd:          0<br>
>>>>> +              FunctionType:    4099<br>
>>>>> +              Flags:           [  ]<br>
>>>>> +              DisplayName:     main<br>
>>>>> +          - Kind:            S_LOCAL<br>
>>>>> +            LocalSym:<br>
>>>>> +              Type:            116<br>
>>>>> +              Flags:           [ IsParameter ]<br>
>>>>> +              VarName:         argc<br>
>>>>> +          - Kind:            S_DEFRANGE_REGISTER_REL<br>
>>>>> +            DefRangeRegisterRelSym:<br>
>>>>> +              Register:        335<br>
>>>>> +              Flags:           0<br>
>>>>> +              BasePointerOffset: 4<br>
>>>>> +              Range:<br>
>>>>> +                OffsetStart:     23<br>
>>>>> +                ISectStart:      0<br>
>>>>> +                Range:           5<br>
>>>>> +              Gaps:<br>
>>>>> +          - Kind:            S_LOCAL<br>
>>>>> +            LocalSym:<br>
>>>>> +              Type:            4096<br>
>>>>> +              Flags:           [ IsParameter ]<br>
>>>>> +              VarName:         argv<br>
>>>>> +          - Kind:            S_DEFRANGE_REGISTER_REL<br>
>>>>> +            DefRangeRegisterRelSym:<br>
>>>>> +              Register:        335<br>
>>>>> +              Flags:           0<br>
>>>>> +              BasePointerOffset: 8<br>
>>>>> +              Range:<br>
>>>>> +                OffsetStart:     23<br>
>>>>> +                ISectStart:      0<br>
>>>>> +                Range:           5<br>
>>>>> +              Gaps:<br>
>>>>> +          - Kind:            S_PROC_ID_END<br>
>>>>> +            ScopeEndSym:<br>
>>>>> +      - !Lines<br>
>>>>> +        CodeSize:        28<br>
>>>>> +        Flags:           [  ]<br>
>>>>> +        RelocOffset:     0<br>
>>>>> +        RelocSegment:    0<br>
>>>>> +        Blocks:<br>
>>>>> +          - FileName:<br>
>>>>> 'D:\src\llvmbuild\cl\Release\x64\generic.cpp'<br>
>>>>> +            Lines:<br>
>>>>> +              - Offset:          0<br>
>>>>> +                LineStart:       2<br>
>>>>> +                IsStatement:     false<br>
>>>>> +                EndDelta:        0<br>
>>>>> +              - Offset:          23<br>
>>>>> +                LineStart:       3<br>
>>>>> +                IsStatement:     false<br>
>>>>> +                EndDelta:        0<br>
>>>>> +            Columns:<br>
>>>>> +      - !FileChecksums<br>
>>>>> +        Checksums:<br>
>>>>> +          - FileName:<br>
>>>>> 'D:\src\llvmbuild\cl\Release\x64\generic.cpp'<br>
>>>>> +            Kind:            MD5<br>
>>>>> +            Checksum:        39E9A066A1995A99DD01F5A392F26D7C<br>
>>>>> +      - !StringTable<br>
>>>>> +        Strings:<br>
>>>>> +          - 'D:\src\llvmbuild\cl\Release\x64\generic.cpp'<br>
>>>>> +          - ''<br>
>>>>> +          - ''<br>
>>>>> +          - ''<br>
>>>>> +    Relocations:<br>
>>>>> +      - VirtualAddress:  100<br>
>>>>> +        SymbolName:      main<br>
>>>>> +        Type:            IMAGE_REL_AMD64_SECREL<br>
>>>>> +      - VirtualAddress:  104<br>
>>>>> +        SymbolName:      main<br>
>>>>> +        Type:            IMAGE_REL_AMD64_SECTION<br>
>>>>> +      - VirtualAddress:  139<br>
>>>>> +        SymbolName:      .text<br>
>>>>> +        Type:            IMAGE_REL_AMD64_SECREL<br>
>>>>> +      - VirtualAddress:  143<br>
>>>>> +        SymbolName:      .text<br>
>>>>> +        Type:            IMAGE_REL_AMD64_SECTION<br>
>>>>> +      - VirtualAddress:  174<br>
>>>>> +        SymbolName:      .text<br>
>>>>> +        Type:            IMAGE_REL_AMD64_SECREL<br>
>>>>> +      - VirtualAddress:  178<br>
>>>>> +        SymbolName:      .text<br>
>>>>> +        Type:            IMAGE_REL_AMD64_SECTION<br>
>>>>> +      - VirtualAddress:  196<br>
>>>>> +        SymbolName:      main<br>
>>>>> +        Type:            IMAGE_REL_AMD64_SECREL<br>
>>>>> +      - VirtualAddress:  200<br>
>>>>> +        SymbolName:      main<br>
>>>>> +        Type:            IMAGE_REL_AMD64_SECTION<br>
>>>>> +  - Name:            '.debug$T'<br>
>>>>> +    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,<br>
>>>>> IMAGE_SCN_MEM_DISCARDABLE, IMAGE_SCN_MEM_READ ]<br>
>>>>> +    Alignment:       4<br>
>>>>> +    SectionData:<br>
>>>>> 040000000A000210700600000C0001000E0001120200000074000000001000000E0008107400000000000200011000001200011600000000021000006D61696E00F3F2F1<br>
>>>>> +    Types:<br>
>>>>> +      - Kind:            LF_POINTER<br>
>>>>> +        Pointer:<br>
>>>>> +          ReferentType:    1648<br>
>>>>> +          Attrs:           65548<br>
>>>>> +      - Kind:            LF_ARGLIST<br>
>>>>> +        ArgList:<br>
>>>>> +          ArgIndices:      [ 116, 4096 ]<br>
>>>>> +      - Kind:            LF_PROCEDURE<br>
>>>>> +        Procedure:<br>
>>>>> +          ReturnType:      116<br>
>>>>> +          CallConv:        NearC<br>
>>>>> +          Options:         [ None ]<br>
>>>>> +          ParameterCount:  2<br>
>>>>> +          ArgumentList:    4097<br>
>>>>> +      - Kind:            LF_FUNC_ID<br>
>>>>> +        FuncId:<br>
>>>>> +          ParentScope:     0<br>
>>>>> +          FunctionType:    4098<br>
>>>>> +          Name:            main<br>
>>>>> +  - Name:            .pdata<br>
>>>>> +    Characteristics: [ IMAGE_SCN_CNT_INITIALIZED_DATA,<br>
>>>>> IMAGE_SCN_MEM_READ ]<br>
>>>>> +    Alignment:       4<br>
>>>>> +    SectionData:     000000001C00000000000000<br>
>>>>> +    Relocations:<br>
>>>>> +      - VirtualAddress:  0<br>
>>>>> +        SymbolName:      main<br>
>>>>> +        Type:            IMAGE_REL_AMD64_ADDR32NB<br>
>>>>> +      - VirtualAddress:  4<br>
>>>>> +        SymbolName:      main<br>
>>>>> +        Type:            IMAGE_REL_AMD64_ADDR32NB<br>
>>>>> +      - VirtualAddress:  8<br>
>>>>> +        SymbolName:      .xdata<br>
>>>>> +        Type:            IMAGE_REL_AMD64_ADDR32NB<br>
>>>>> +symbols:<br>
>>>>> +  - Name:            .text<br>
>>>>> +    Value:           0<br>
>>>>> +    SectionNumber:   1<br>
>>>>> +    SimpleType:      IMAGE_SYM_TYPE_NULL<br>
>>>>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL<br>
>>>>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC<br>
>>>>> +    SectionDefinition:<br>
>>>>> +      Length:          28<br>
>>>>> +      NumberOfRelocations: 0<br>
>>>>> +      NumberOfLinenumbers: 0<br>
>>>>> +      CheckSum:        594448369<br>
>>>>> +      Number:          1<br>
>>>>> +  - Name:            .data<br>
>>>>> +    Value:           0<br>
>>>>> +    SectionNumber:   2<br>
>>>>> +    SimpleType:      IMAGE_SYM_TYPE_NULL<br>
>>>>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL<br>
>>>>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC<br>
>>>>> +    SectionDefinition:<br>
>>>>> +      Length:          0<br>
>>>>> +      NumberOfRelocations: 0<br>
>>>>> +      NumberOfLinenumbers: 0<br>
>>>>> +      CheckSum:        0<br>
>>>>> +      Number:          2<br>
>>>>> +  - Name:            .bss<br>
>>>>> +    Value:           0<br>
>>>>> +    SectionNumber:   3<br>
>>>>> +    SimpleType:      IMAGE_SYM_TYPE_NULL<br>
>>>>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL<br>
>>>>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC<br>
>>>>> +    SectionDefinition:<br>
>>>>> +      Length:          0<br>
>>>>> +      NumberOfRelocations: 0<br>
>>>>> +      NumberOfLinenumbers: 0<br>
>>>>> +      CheckSum:        0<br>
>>>>> +      Number:          3<br>
>>>>> +  - Name:            .xdata<br>
>>>>> +    Value:           0<br>
>>>>> +    SectionNumber:   4<br>
>>>>> +    SimpleType:      IMAGE_SYM_TYPE_NULL<br>
>>>>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL<br>
>>>>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC<br>
>>>>> +    SectionDefinition:<br>
>>>>> +      Length:          8<br>
>>>>> +      NumberOfRelocations: 0<br>
>>>>> +      NumberOfLinenumbers: 0<br>
>>>>> +      CheckSum:        1192424177<br>
>>>>> +      Number:          4<br>
>>>>> +  - Name:            .drectve<br>
>>>>> +    Value:           0<br>
>>>>> +    SectionNumber:   5<br>
>>>>> +    SimpleType:      IMAGE_SYM_TYPE_NULL<br>
>>>>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL<br>
>>>>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC<br>
>>>>> +    SectionDefinition:<br>
>>>>> +      Length:          48<br>
>>>>> +      NumberOfRelocations: 0<br>
>>>>> +      NumberOfLinenumbers: 0<br>
>>>>> +      CheckSum:        149686238<br>
>>>>> +      Number:          5<br>
>>>>> +  - Name:            '.debug$S'<br>
>>>>> +    Value:           0<br>
>>>>> +    SectionNumber:   6<br>
>>>>> +    SimpleType:      IMAGE_SYM_TYPE_NULL<br>
>>>>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL<br>
>>>>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC<br>
>>>>> +    SectionDefinition:<br>
>>>>> +      Length:          324<br>
>>>>> +      NumberOfRelocations: 8<br>
>>>>> +      NumberOfLinenumbers: 0<br>
>>>>> +      CheckSum:        <a href="tel:(419)%20671-7433" value="+14196717433" target="_blank">4196717433</a><br>
>>>>> +      Number:          6<br>
>>>>> +  - Name:            '.debug$T'<br>
>>>>> +    Value:           0<br>
>>>>> +    SectionNumber:   7<br>
>>>>> +    SimpleType:      IMAGE_SYM_TYPE_NULL<br>
>>>>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL<br>
>>>>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC<br>
>>>>> +    SectionDefinition:<br>
>>>>> +      Length:          68<br>
>>>>> +      NumberOfRelocations: 0<br>
>>>>> +      NumberOfLinenumbers: 0<br>
>>>>> +      CheckSum:        485351071<br>
>>>>> +      Number:          7<br>
>>>>> +  - Name:            .pdata<br>
>>>>> +    Value:           0<br>
>>>>> +    SectionNumber:   8<br>
>>>>> +    SimpleType:      IMAGE_SYM_TYPE_NULL<br>
>>>>> +    ComplexType:     IMAGE_SYM_DTYPE_NULL<br>
>>>>> +    StorageClass:    IMAGE_SYM_CLASS_STATIC<br>
>>>>> +    SectionDefinition:<br>
>>>>> +      Length:          12<br>
>>>>> +      NumberOfRelocations: 3<br>
>>>>> +      NumberOfLinenumbers: 0<br>
>>>>> +      CheckSum:        722740324<br>
>>>>> +      Number:          8<br>
>>>>> +  - Name:            main<br>
>>>>> +    Value:           0<br>
>>>>> +    SectionNumber:   1<br>
>>>>> +    SimpleType:      IMAGE_SYM_TYPE_NULL<br>
>>>>> +    ComplexType:     IMAGE_SYM_DTYPE_FUNCTION<br>
>>>>> +    StorageClass:    IMAGE_SYM_CLASS_EXTERNAL<br>
>>>>> +...<br>
>>>>><br>
>>>>> Added: lld/trunk/test/COFF/Inputs/natvis-1.natvis<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/natvis-1.natvis?rev=327895&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/natvis-1.natvis?rev=327895&view=auto</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- lld/trunk/test/COFF/Inputs/natvis-1.natvis (added)<br>
>>>>> +++ lld/trunk/test/COFF/Inputs/natvis-1.natvis Mon Mar 19 12:53:51 2018<br>
>>>>> @@ -0,0 +1 @@<br>
>>>>> +1st Natvis Test<br>
>>>>><br>
>>>>> Added: lld/trunk/test/COFF/Inputs/natvis-2.natvis<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/natvis-2.natvis?rev=327895&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/natvis-2.natvis?rev=327895&view=auto</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- lld/trunk/test/COFF/Inputs/natvis-2.natvis (added)<br>
>>>>> +++ lld/trunk/test/COFF/Inputs/natvis-2.natvis Mon Mar 19 12:53:51 2018<br>
>>>>> @@ -0,0 +1 @@<br>
>>>>> +Second Natvis Test<br>
>>>>><br>
>>>>> Added: lld/trunk/test/COFF/Inputs/natvis-3.natvis<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/natvis-3.natvis?rev=327895&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/Inputs/natvis-3.natvis?rev=327895&view=auto</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- lld/trunk/test/COFF/Inputs/natvis-3.natvis (added)<br>
>>>>> +++ lld/trunk/test/COFF/Inputs/natvis-3.natvis Mon Mar 19 12:53:51 2018<br>
>>>>> @@ -0,0 +1 @@<br>
>>>>> +Third Natvis Test<br>
>>>>><br>
>>>>> Added: lld/trunk/test/COFF/pdb-natvis.test<br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/pdb-natvis.test?rev=327895&view=auto" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/COFF/pdb-natvis.test?rev=327895&view=auto</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- lld/trunk/test/COFF/pdb-natvis.test (added)<br>
>>>>> +++ lld/trunk/test/COFF/pdb-natvis.test Mon Mar 19 12:53:51 2018<br>
>>>>> @@ -0,0 +1,26 @@<br>
>>>>> +REQUIRES: diasdk<br>
>>>>> +<br>
>>>>> +RUN: yaml2obj %p/Inputs/generic.yaml > %t.obj<br>
>>>>> +RUN: lld-link /DEBUG %t.obj /nodefaultlib /entry:main<br>
>>>>> /NATVIS:%p/Inputs/natvis-1.natvis \<br>
>>>>> +RUN:   /NATVIS:%p/Inputs/natvis-2.natvis<br>
>>>>> /NATVIS:%p/Inputs/natvis-3.natvis /OUT:%t.exe \<br>
>>>>> +RUN:   /PDB:%t.pdb<br>
>>>>> +RUN: llvm-pdbutil pretty -injected-sources -injected-source-content<br>
>>>>> %t.pdb | FileCheck \<br>
>>>>> +RUN:   --check-prefix=CHECK-FIRST %s<br>
>>>>> +RUN: llvm-pdbutil pretty -injected-sources -injected-source-content<br>
>>>>> %t.pdb | FileCheck \<br>
>>>>> +RUN:   --check-prefix=CHECK-SECOND %s<br>
>>>>> +RUN: llvm-pdbutil pretty -injected-sources -injected-source-content<br>
>>>>> %t.pdb | FileCheck \<br>
>>>>> +RUN:   --check-prefix=CHECK-THIRD %s<br>
>>>>> +<br>
>>>>> +RUN: lld-link /DEBUG %t.obj /nodefaultlib /entry:main<br>
>>>>> /NATVIS:%p/Inputs/test2.natvis \<br>
>>>>> +RUN:   /OUT:%t.exe /PDB:%t.pdb 2>&1 | FileCheck<br>
>>>>> --check-prefix=CHECK-MISSING %s<br>
>>>>> +<br>
>>>>> +CHECK-FIRST:      {{.*}}natvis-1.natvis (16 bytes): obj=<null>,<br>
>>>>> vname={{.*}}natvis-1.natvis, crc=355285096, compression=None<br>
>>>>> +CHECK-FIRST-NEXT: 1st Natvis Test<br>
>>>>> +<br>
>>>>> +CHECK-SECOND:      {{.*}}natvis-2.natvis (19 bytes): obj=<null>,<br>
>>>>> vname={{.*}}natvis-2.natvis, crc=<a href="tel:(425)%20264-0062" value="+14252640062" target="_blank">4252640062</a>, compression=None<br>
>>>>> +CHECK-SECOND-NEXT: Second Natvis Test<br>
>>>>> +<br>
>>>>> +CHECK-THIRD:      {{.*}}natvis-3.natvis (18 bytes): obj=<null>,<br>
>>>>> vname={{.*}}natvis-3.natvis, crc=<a href="tel:(206)%20971-9849" value="+12069719849" target="_blank">2069719849</a>, compression=None<br>
>>>>> +CHECK-THIRD-NEXT: Third Natvis Test<br>
>>>>> +<br>
>>>>> +CHECK-MISSING: Cannot open input file: {{.*}}test2.natvis<br>
>>>>> \ No newline at end of file<br>
>>>>><br>
>>>>> Modified: lld/trunk/test/<a href="http://lit.cfg.py" rel="noreferrer" target="_blank">lit.cfg.py</a><br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/lit.cfg.py?rev=327895&r1=327894&r2=327895&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/lit.cfg.py?rev=327895&r1=327894&r2=327895&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- lld/trunk/test/<a href="http://lit.cfg.py" rel="noreferrer" target="_blank">lit.cfg.py</a> (original)<br>
>>>>> +++ lld/trunk/test/<a href="http://lit.cfg.py" rel="noreferrer" target="_blank">lit.cfg.py</a> Mon Mar 19 12:53:51 2018<br>
>>>>> @@ -85,6 +85,9 @@ if (lit.util.which('cvtres', config.envi<br>
>>>>>  if (config.llvm_libxml2_enabled == '1'):<br>
>>>>>      config.available_features.add('libxml2')<br>
>>>>><br>
>>>>> +if config.have_dia_sdk:<br>
>>>>> +    config.available_features.add("diasdk")<br>
>>>>> +<br>
>>>>>  tar_executable = lit.util.which('tar', config.environment['PATH'])<br>
>>>>>  if tar_executable:<br>
>>>>>      tar_version = subprocess.Popen(<br>
>>>>><br>
>>>>> Modified: lld/trunk/test/<a href="http://lit.site.cfg.py.in" rel="noreferrer" target="_blank">lit.site.cfg.py.in</a><br>
>>>>> URL:<br>
>>>>> <a href="http://llvm.org/viewvc/llvm-project/lld/trunk/test/lit.site.cfg.py.in?rev=327895&r1=327894&r2=327895&view=diff" rel="noreferrer" target="_blank">http://llvm.org/viewvc/llvm-project/lld/trunk/test/lit.site.cfg.py.in?rev=327895&r1=327894&r2=327895&view=diff</a><br>
>>>>><br>
>>>>> ==============================================================================<br>
>>>>> --- lld/trunk/test/<a href="http://lit.site.cfg.py.in" rel="noreferrer" target="_blank">lit.site.cfg.py.in</a> (original)<br>
>>>>> +++ lld/trunk/test/<a href="http://lit.site.cfg.py.in" rel="noreferrer" target="_blank">lit.site.cfg.py.in</a> Mon Mar 19 12:53:51 2018<br>
>>>>> @@ -1,5 +1,6 @@<br>
>>>>>  @LIT_SITE_CFG_IN_HEADER@<br>
>>>>><br>
>>>>> +config.have_dia_sdk = "@LLVM_ENABLE_DIA_SDK@"<br>
>>>>>  config.llvm_src_root = "@LLVM_SOURCE_DIR@"<br>
>>>>>  config.llvm_obj_root = "@LLVM_BINARY_DIR@"<br>
>>>>>  config.llvm_tools_dir = "@LLVM_TOOLS_DIR@"<br>
>>>>><br>
>>>>><br>
>>>>> _______________________________________________<br>
>>>>> llvm-commits mailing list<br>
>>>>> <a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
>>>>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
>>>><br>
>>>><br>
>><br>
>> _______________________________________________<br>
>> llvm-commits mailing list<br>
>> <a href="mailto:llvm-commits@lists.llvm.org" target="_blank">llvm-commits@lists.llvm.org</a><br>
>> <a href="http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits" rel="noreferrer" target="_blank">http://lists.llvm.org/cgi-bin/mailman/listinfo/llvm-commits</a><br>
>><br>
</blockquote></div>