llvm.org GIT mirror llvm / 20f23a2
[globalisel][tablegen] Try again to fix builds on old MSVC's after r300964 This should fix llvm-clang-x86_64-expensive-checks-win I reproduced the error using the following code: namespace llvm { // Moving this out of the llvm namespace fixes the error. template<unsigned NumBits> class PredicateBitsetImpl {}; } namespace { const unsigned MAX_SUBTARGET_PREDICATES = 11; // This works on Clang but is broken on MSVC // using PredicateBitset = PredicateBitsetImpl<MAX_SUBTARGET_PREDICATES>; // Some versions emit a syntax error here ("error C2061: syntax error: identifier // 'PredicateBitsetImpl'") but others accept it and only emit the C3646 below. // // This works on Clang and MSVC using PredicateBitset = llvm::PredicateBitsetImpl<MAX_SUBTARGET_PREDICATES>; class Foo { private: PredicateBitset A; // error C3646: 'A': unknown override specifier }; } git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@300970 91177308-0d34-0410-b5e6-96231b3b80d8 Daniel Sanders 3 years ago
1 changed file(s) with 1 addition(s) and 1 deletion(s). Raw diff Collapse all Expand all
17491749 << "const unsigned MAX_SUBTARGET_PREDICATES = " << SubtargetFeatures.size()
17501750 << ";\n"
17511751 << "using PredicateBitset = "
1752 "PredicateBitsetImpl;\n"
1752 "llvm::PredicateBitsetImpl;\n"
17531753 << "#endif // ifdef GET_GLOBALISEL_PREDICATE_BITSET\n\n";
17541754
17551755 OS << "#ifdef GET_GLOBALISEL_TEMPORARIES_DECL\n";