LLVM 4.0 with clang 4.0

Hello,

Is anyone except for me having trouble to compile LLVM after adding Clang?

I am compiling on Mac OS X, and having trouble because of the following error:

/LLVM/tools/clang/utils/TableGen/ClangAttrEmitter.cpp:2213:30: error: no viable conversion from ‘vectorllvm::StringRef’ to ‘vectorstd::string
std::vectorstd::string OSes = R->getValueAsListOfStrings(“OSes”);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/…/include/c++/v1/vector:538:5: note: candidate constructor not viable: no known conversion
from ‘std::vector’ to ‘initializer_list<value_type>’ (aka ‘initializer_list<std::__1::basic_string >’) for 1st argument
vector(initializer_list<value_type> __il);
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/…/include/c++/v1/vector:550:5: note: candidate constructor not viable: no known conversion
from ‘std::vector’ to ‘const std::__1::vector<std::__1::basic_string, std::__1::allocator<std::__1::basic_string > > &’ for 1st argument
vector(const vector& __x);
^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/…/include/c++/v1/vector:556:5: note: candidate constructor not viable: no known conversion
from ‘std::vector’ to ‘std::__1::vector<std::__1::basic_string, std::__1::allocator<std::__1::basic_string > > &&’ for 1st argument
vector(vector&& __x)

I tried also installing llvm 4.0 and clang 4.0 using MacPorts and using that to compile, but it resulted in the same error, but with a different path…

It seems that there is a problem with matching vector of StringRefs in the libraries installed on my machine.

I tried searching the web, but unfortunately no results. Is there anyone that has seen this error?

Kind regards,
Guus Leijsten

It looks like you are trying to compile mismatching LLVM and Clang (more specifically, newer LLVM and older Clang). LLVM returns a vector of StringRefs from getValueAsListOfStrings after r304325, and Clang was updated in a subsequent commit. How are you building Clang?