[llvm] r223802 - IR: Split Metadata from Value

Hans Wennborg hans at chromium.org
Tue Dec 9 12:40:10 PST 2014


On Tue, Dec 9, 2014 at 12:28 PM, Duncan P. N. Exon Smith
<dexonsmith at apple.com> wrote:
>
>> On 2014 Dec 9, at 12:26, Hans Wennborg <hans at chromium.org> wrote:
>>
>> On Tue, Dec 9, 2014 at 12:22 PM, David Blaikie <dblaikie at gmail.com> wrote:
>>>
>>>
>>> On Tue, Dec 9, 2014 at 12:07 PM, Hans Wennborg <hans at chromium.org> wrote:
>>>>
>>>> This broke the MSVC build, see e.g. [1]. I suspect it is because MSVC
>>>> (except recent versions) doesn't support LLVM_EXPORTED.
>>>
>>>
>>> I take it you meant LLVM_EXPLICIT?
>>
>> Yes; sorry, freudian slip :)
>>
>>>> I tried
>>>> removing those operator bool()'s, but there were more errors.
>>>>
>>>> Does your patch compile if you remove LLVM_EXPORTED? I suspect that
>>>> might reveal the same problem on Mac/Linux.
>>>>
>>>> - Hans
>>>>
>>>> 1.
>>>> http://build.chromium.org/p/chromium.fyi/builders/CrWinClang/builds/660/steps/runhooks/logs/stdio
>>>
>>>
>>> Somewhat surprised that compiles anywhere, really... Curious.
>>
>> I'm working on a patch for appeasing MSVC which looks promising so far..
>
> Does r223820 not fix it?

It seems to have helped, but now it fails with:

..\lib\Linker\LinkModules.cpp(1315) : error C2593: 'operator !=' is ambiguous
        could be 'built-in C++ operator!=(bool, bool)'
        or       'built-in C++ operator!=(llvm::Metadata *, llvm::Metadata *)'
        while trying to match the argument list '(const llvm::MDOperand, const l
lvm::MDOperand)'
..\lib\Linker\LinkModules.cpp(1340) : error C2593: 'operator !=' is ambiguous
        could be 'built-in C++ operator!=(bool, bool)'
        or       'built-in C++ operator!=(llvm::Metadata *, llvm::Metadata *)'
        while trying to match the argument list '(const llvm::MDOperand, const l
lvm::MDOperand)'
..\lib\Linker\LinkModules.cpp(1348) : error C2593: 'operator !=' is ambiguous
        could be 'built-in C++ operator!=(bool, bool)'
        or       'built-in C++ operator!=(llvm::Metadata *, llvm::Metadata *)'
        while trying to match the argument list '(const llvm::MDOperand, const l
lvm::MDOperand)'


I've committed my attempt in r223824.

 - Hans



More information about the llvm-commits mailing list