mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-27 13:30:05 +00:00
Fix the build with MSVC 2013 after new shuffle code
MSVC gives this awesome diagnostic: ..\lib\Target\X86\X86ISelLowering.cpp(7085) : error C2971: 'llvm::VariadicFunction1' : template parameter 'Func' : 'isShuffleEquivalentImpl' : a local variable cannot be used as a non-type argument ..\include\llvm/ADT/VariadicFunction.h(153) : see declaration of 'llvm::VariadicFunction1' ..\lib\Target\X86\X86ISelLowering.cpp(7061) : see declaration of 'isShuffleEquivalentImpl' Using an anonymous namespace makes the problem go away. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@215744 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
parent
34ef4cd65b
commit
2726e7d60b
@ -7055,11 +7055,14 @@ static bool isSingleInputShuffleMask(ArrayRef<int> Mask) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Hide this symbol with an anonymous namespace instead of 'static' so that MSVC
|
||||
// 2013 will allow us to use it as a non-type template parameter.
|
||||
namespace {
|
||||
|
||||
/// \brief Implementation of the \c isShuffleEquivalent variadic functor.
|
||||
///
|
||||
/// See its documentation for details.
|
||||
static bool isShuffleEquivalentImpl(ArrayRef<int> Mask,
|
||||
ArrayRef<const int *> Args) {
|
||||
bool isShuffleEquivalentImpl(ArrayRef<int> Mask, ArrayRef<const int *> Args) {
|
||||
if (Mask.size() != Args.size())
|
||||
return false;
|
||||
for (int i = 0, e = Mask.size(); i < e; ++i) {
|
||||
@ -7071,6 +7074,9 @@ static bool isShuffleEquivalentImpl(ArrayRef<int> Mask,
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
} // namespace
|
||||
|
||||
/// \brief Checks whether a shuffle mask is equivalent to an explicit list of
|
||||
/// arguments.
|
||||
///
|
||||
|
Loading…
Reference in New Issue
Block a user