[PATCH] D14348: Add Printable class to simplify the construction of Print helpers.
Joseph Tremoulet via llvm-commits
llvm-commits at lists.llvm.org
Tue Dec 8 14:30:07 PST 2015
Fuller error messages from MSVC2013 pasted below. It seems to no longer be happy to use e.g. the implicit user-defined conversion from Statistic to unsigned to print a Statistic, though I don't know why your change would make that suddenly be the case nor why the list of candidate overloads looks so off.
8>C:\Source\llvm-mirror\lib\Analysis\CallGraph.cpp(190): error C2593: 'operator <<' is ambiguous
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(237): could be 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const llvm::FormattedNumber &)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(234): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const llvm::FormattedString &)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(231): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const llvm::format_object_base &)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(218): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(llvm::Printable)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(215): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(double)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(211): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(int)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(207): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(unsigned int)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(206): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const void *)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(205): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(__int64)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(204): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(unsigned __int64)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(203): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(long)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(202): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(unsigned long)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(198): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const llvm::SmallVectorImpl<char> &)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(193): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const std::string &)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(186): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const char *)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(171): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(llvm::StringRef)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(164): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(signed char)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(157): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(unsigned char)'
8> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(150): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(char)'
8> C:\Source\llvm-mirror\include\llvm/IR/Module.h(656): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Module &)'
8> C:\Source\llvm-mirror\include\llvm/IR/Comdat.h(59): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Comdat &)'
8> C:\Source\llvm-mirror\include\llvm/IR/Metadata.h(158): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Metadata &)'
8> C:\Source\llvm-mirror\include\llvm/IR/Value.h(534): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Value &)'
8> C:\Source\llvm-mirror\include\llvm/ADT/Twine.h(534): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Twine &)'
8> C:\Source\llvm-mirror\include\llvm/IR/Type.h(424): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,llvm::Type &)'
8> C:\Source\llvm-mirror\include\llvm/ADT/APInt.h(1739): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::APInt &)'
8> while trying to match the argument list '(llvm::raw_ostream, const llvm::WeakVH)'
7>C:\Source\llvm-mirror\lib\Transforms\Scalar\Sink.cpp(108): error C2593: 'operator <<' is ambiguous
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(237): could be 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const llvm::FormattedNumber &)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(234): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const llvm::FormattedString &)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(231): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const llvm::format_object_base &)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(218): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(llvm::Printable)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(215): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(double)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(211): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(int)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(207): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(unsigned int)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(206): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const void *)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(205): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(__int64)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(204): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(unsigned __int64)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(203): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(long)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(202): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(unsigned long)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(198): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const llvm::SmallVectorImpl<char> &)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(193): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const std::string &)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(186): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const char *)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(171): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(llvm::StringRef)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(164): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(signed char)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(157): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(unsigned char)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(150): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(char)'
7> C:\Source\llvm-mirror\include\llvm/IR/ConstantRange.h(282): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::ConstantRange &)'
7> C:\Source\llvm-mirror\include\llvm/IR/Module.h(656): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Module &)'
7> C:\Source\llvm-mirror\include\llvm/IR/Comdat.h(59): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Comdat &)'
7> C:\Source\llvm-mirror\include\llvm/IR/Metadata.h(158): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Metadata &)'
7> C:\Source\llvm-mirror\include\llvm/IR/Value.h(534): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Value &)'
7> C:\Source\llvm-mirror\include\llvm/ADT/Twine.h(534): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Twine &)'
7> C:\Source\llvm-mirror\include\llvm/IR/Type.h(424): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,llvm::Type &)'
7> C:\Source\llvm-mirror\include\llvm/ADT/APInt.h(1739): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::APInt &)'
7> while trying to match the argument list '(llvm::raw_ostream, llvm::Statistic)'
9>C:\Source\llvm-mirror\lib\CodeGen\EarlyIfConversion.cpp(203): error C2593: 'operator <<' is ambiguous
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(237): could be 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const llvm::FormattedNumber &)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(234): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const llvm::FormattedString &)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(231): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const llvm::format_object_base &)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(218): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(llvm::Printable)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(215): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(double)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(211): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(int)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(207): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(unsigned int)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(206): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const void *)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(205): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(__int64)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(204): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(unsigned __int64)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(203): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(long)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(202): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(unsigned long)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(198): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const llvm::SmallVectorImpl<char> &)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(193): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const std::string &)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(186): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const char *)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(171): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(llvm::StringRef)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(164): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(signed char)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(157): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(unsigned char)'
9> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(150): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(char)'
9> C:\Source\llvm-mirror\include\llvm/CodeGen/MachineTraceMetrics.h(391): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::MachineTraceMetrics::Ensemble &)'
9> C:\Source\llvm-mirror\include\llvm/CodeGen/MachineTraceMetrics.h(385): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::MachineTraceMetrics::Trace &)'
9> C:\Source\llvm-mirror\include\llvm/CodeGen/MachineBasicBlock.h(768): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::MachineBasicBlock &)'
9> C:\Source\llvm-mirror\include\llvm/Support/BranchProbability.h(163): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,llvm::BranchProbability)'
9> C:\Source\llvm-mirror\include\llvm/CodeGen/MachineInstr.h(1253): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::MachineInstr &)'
9> C:\Source\llvm-mirror\include\llvm/CodeGen/MachineOperand.h(744): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::MachineOperand &)'
9> C:\Source\llvm-mirror\include\llvm/IR/Module.h(656): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Module &)'
9> C:\Source\llvm-mirror\include\llvm/IR/Comdat.h(59): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Comdat &)'
9> C:\Source\llvm-mirror\include\llvm/IR/Metadata.h(158): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Metadata &)'
9> C:\Source\llvm-mirror\include\llvm/IR/Value.h(534): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Value &)'
9> C:\Source\llvm-mirror\include\llvm/ADT/Twine.h(534): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Twine &)'
9> C:\Source\llvm-mirror\include\llvm/IR/Type.h(424): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,llvm::Type &)'
9> C:\Source\llvm-mirror\include\llvm/ADT/APInt.h(1739): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::APInt &)'
9> while trying to match the argument list '(llvm::raw_ostream, llvm::cl::opt<unsigned int,false,llvm::cl::parser<unsigned int>>)'
7>C:\Source\llvm-mirror\lib\Transforms\Scalar\LoopStrengthReduce.cpp(4808): error C2593: 'operator <<' is ambiguous
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(237): could be 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const llvm::FormattedNumber &)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(234): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const llvm::FormattedString &)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(231): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const llvm::format_object_base &)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(218): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(llvm::Printable)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(215): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(double)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(211): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(int)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(207): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(unsigned int)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(206): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const void *)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(205): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(__int64)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(204): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(unsigned __int64)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(203): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(long)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(202): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(unsigned long)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(198): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const llvm::SmallVectorImpl<char> &)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(193): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const std::string &)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(186): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(const char *)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(171): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(llvm::StringRef)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(164): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(signed char)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(157): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(unsigned char)'
7> C:\Source\llvm-mirror\include\llvm/Support/raw_ostream.h(150): or 'llvm::raw_ostream &llvm::raw_ostream::operator <<(char)'
7> C:\Source\llvm-mirror\include\llvm/Analysis/ScalarEvolution.h(215): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::SCEVPredicate &)'
7> C:\Source\llvm-mirror\include\llvm/Analysis/ScalarEvolution.h(156): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::SCEV &)'
7> C:\Source\llvm-mirror\include\llvm/IR/Module.h(656): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Module &)'
7> C:\Source\llvm-mirror\include\llvm/IR/Metadata.h(158): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Metadata &)'
7> C:\Source\llvm-mirror\include\llvm/IR/Comdat.h(59): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Comdat &)'
7> C:\Source\llvm-mirror\include\llvm/IR/ConstantRange.h(282): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::ConstantRange &)'
7> C:\Source\llvm-mirror\include\llvm/IR/Type.h(424): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,llvm::Type &)'
7> C:\Source\llvm-mirror\include\llvm/ADT/APInt.h(1739): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::APInt &)'
7> C:\Source\llvm-mirror\include\llvm/IR/Value.h(534): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Value &)'
7> C:\Source\llvm-mirror\include\llvm/ADT/Twine.h(534): or 'llvm::raw_ostream &llvm::operator <<(llvm::raw_ostream &,const llvm::Twine &)'
7> while trying to match the argument list '(llvm::raw_ostream, const llvm::IVStrideUse)'
-----Original Message-----
From: Matthias Braun [mailto:matze at braunis.de]
Sent: Thursday, December 3, 2015 6:37 PM
To: David Blaikie <dblaikie at gmail.com>
Cc: reviews+D14348+public+d44b25c0924b3f23 at reviews.llvm.org; llvm-commits <llvm-commits at lists.llvm.org>; Reid Kleckner <rnk at google.com>; Rafael Espindola <rafael.espindola at gmail.com>; Joseph Tremoulet <jotrem at microsoft.com>; Andy Ayers <andya at microsoft.com>; Paul Robinson <paul_robinson at playstation.sony.com>
Subject: Re: [PATCH] D14348: Add Printable class to simplify the construction of Print helpers.
Unfortunately I don't, maybe some of the MSVC developers could take a look?
CCing some "random" people that may have msvc handy.
- Matthias
> On Dec 3, 2015, at 3:32 PM, David Blaikie via llvm-commits <llvm-commits at lists.llvm.org> wrote:
>
>
>
> On Thu, Dec 3, 2015 at 3:29 PM, Matthias Braun via llvm-commits <llvm-commits at lists.llvm.org> wrote:
> MatzeB added a comment.
>
> I had to revert this patch because two gcc buildbots and all the msvc bots choke on ambiguous operator<< overloads. Examples:
>
> https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2flab.ll
> vm.org%3a8011%2fbuilders%2fsanitizer-x86_64-linux-autoconf%2fbuilds%2f
> 12622%2fsteps%2fbuild%2520fresh%2520clang%2flogs%2fstdio&data=01%7c01%
> 7cjotrem%40microsoft.com%7cd814fd85e93944cd7a8108d2fc3ab676%7c72f988bf
> 86f141af91ab2d7cd011db47%7c1&sdata=ItGGfmEQe%2bJpkXJcn%2fDIWwmN%2fe1%2
> flX2TNOF1y8EmA8o%3d
> https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2flab.ll
> vm.org%3a8011%2fbuilders%2fpolly-amd64-linux%2fbuilds%2f36852%2fsteps%
> 2fbuild_polly%2flogs%2fstdio&data=01%7c01%7cjotrem%40microsoft.com%7cd
> 814fd85e93944cd7a8108d2fc3ab676%7c72f988bf86f141af91ab2d7cd011db47%7c1
> &sdata=qrDTOUlzv%2fPifR0HMtERiQ%2bfCgo9rg1YMf3Gt3HaTOI%3d
> https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2flab.ll
> vm.org%3a8011%2fbuilders%2flld-x86_64-win7%2fbuilds%2f27400%2fsteps%2f
> build_Lld%2flogs%2fstdio&data=01%7c01%7cjotrem%40microsoft.com%7cd814f
> d85e93944cd7a8108d2fc3ab676%7c72f988bf86f141af91ab2d7cd011db47%7c1&sda
> ta=lpVM3KZLxI4xcmmmTM9hGhJreq%2fN5uIV9RYQZvnhRx4%3d
>
> My current guess is that std::function implicitely converts to void*
> or void* implicitely converts to std::function on these systems. So I
> guess to get this working I have to go back to the shim class after
> all :-(
>
> Fair guess - though if you've got access to such a revision of GCC such that you could test/demonstrate this, it'd be good. I'm always hesitant to workaround something without knowing exactly what it is that's being worked around. (especially so we can leave a comment to rip out teh workaround when we drop support for whatever version of the compiler/standard library has this bug).
>
> - Dave
>
>
>
> Repository:
> rL LLVM
>
> https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2freview
> s.llvm.org%2fD14348&data=01%7c01%7cjotrem%40microsoft.com%7cd814fd85e9
> 3944cd7a8108d2fc3ab676%7c72f988bf86f141af91ab2d7cd011db47%7c1&sdata=oQ
> J9YfmYjWj5MHIfIWgy1tJ2Z5dGYhwSNE4NZfw3Vxs%3d
>
>
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2flists.
> llvm.org%2fcgi-bin%2fmailman%2flistinfo%2fllvm-commits&data=01%7c01%7c
> jotrem%40microsoft.com%7cd814fd85e93944cd7a8108d2fc3ab676%7c72f988bf86
> f141af91ab2d7cd011db47%7c1&sdata=DN0DW8EFs9HNmJRnupRHaH7LKw6mOwasO9OdQ
> zfnc9I%3d
>
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at lists.llvm.org
> https://na01.safelinks.protection.outlook.com/?url=http%3a%2f%2flists.
> llvm.org%2fcgi-bin%2fmailman%2flistinfo%2fllvm-commits&data=01%7c01%7c
> jotrem%40microsoft.com%7cd814fd85e93944cd7a8108d2fc3ab676%7c72f988bf86
> f141af91ab2d7cd011db47%7c1&sdata=DN0DW8EFs9HNmJRnupRHaH7LKw6mOwasO9OdQ
> zfnc9I%3d
More information about the llvm-commits
mailing list