SMFixIt helps break TableGen in Trunk

Trunk output:

[ 32%] Building CXX object examples/Kaleidoscope/Chapter3/CMakeFiles/Kaleidoscope-Ch3.dir/toy.cpp.o
/home/mdriftmeyer/DeveloperProjects/LLVMProject/trunk/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp:158:17: error:
no member named ‘getSuperClassRanges’ in ‘llvm::Record’; did you mean ‘getSuperClasses’?
return R->getSuperClassRanges()[i];
^~~~~~~~~~~~~~~~~~~
getSuperClasses
/home/mdriftmeyer/DeveloperProjects/LLVMProject/trunk/llvm/include/llvm/TableGen/Record.h:1450:33: note:
‘getSuperClasses’ declared here
const std::vector<Record*> &getSuperClasses() const { return SuperClasses; }
^
/home/mdriftmeyer/DeveloperProjects/LLVMProject/trunk/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp:158:14: error:
no viable conversion from ‘llvm::Record *const’ to ‘llvm::SMRange’
return R->getSuperClassRanges()[i];
^~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/mdriftmeyer/DeveloperProjects/LLVMProject/trunk/llvm/include/llvm/Support/SMLoc.h:47:7: note:
candidate constructor (the implicit copy constructor) not viable: no known conversion from
‘llvm::Record *const’ to ‘const llvm::SMRange &’ for 1st argument
class SMRange {
^
/home/mdriftmeyer/DeveloperProjects/LLVMProject/trunk/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp:187:16: error:
no member named ‘isAnonymous’ in ‘llvm::Record’
if (Group->isAnonymous()) {

/home/mdriftmeyer/DeveloperProjects/LLVMProject/trunk/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp:242:9: error:
unknown type name 'SMFixIt'
SMFixIt FixIt(InGroupRange, Replacement.str());
^
/home/mdriftmeyer/DeveloperProjects/LLVMProject/trunk/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp:250:63: error:
use of undeclared identifier 'SMFixIt'; did you mean 'FixIt'?
: ArrayRef<SMFixIt>());
^~~~~~~
FixIt
/home/mdriftmeyer/DeveloperProjects/LLVMProject/trunk/llvm/tools/clang/utils/TableGen/ClangDiagnosticsEmitter.cpp:242:17: note:
'FixIt' declared here
SMFixIt FixIt(InGroupRange, Replacement.str());
^
5 errors generated.
make[2]: *** [tools/clang/utils/TableGen/CMakeFiles/clang-tblgen.dir/ClangDiagnosticsEmitter.cpp.o] Error 1
make[1]: *** [tools/clang/utils/TableGen/CMakeFiles/clang-tblgen.dir/all] Error 2
make[1]: *** Waiting for unfinished jobs....
[ 32%] Building CXX object lib/Target/Hexagon/MCTargetDesc/CMakeFiles/LLVMHexagonDesc.dir/HexagonMCAsmInfo.cpp.o
Linking CXX shared library ../../../libLLVMHexagonDesc.so
  • Marc

Your clang and llvm checkouts might be out of sync.

-- Sean Silva