clang vs boost - take 3

Hi,

today, llvm and clang actually links again on my Linux box so I decided to
see how well clang currently does at compiling the boost headers.

It turns out that there remain only 7 top-level boost header files
that do not compile for me with the current version of clang.

More specifically the toplevel header files:

#include <boost/regex.hpp>
#include <boost/unordered_set.hpp>
#include <boost/unordered_map.hpp>
#include <boost/dynamic_bitset.hpp>
#include <boost/asio.hpp>

do not yet compile with clang++ for me.

Compilation of the above header files all crash as a result of the following assertion failure.
// clang: SemaExpr.cpp:1521: clang::ASTOwningResult<&clang::ActionBase::DeleteExpr> clang::Sema::BuildDeclarationNameExpr(const clang::CXXScopeSpec&, clang::SourceLocation, clang::NamedDecl*): Assertion `!isa(D) && “Cannot refer unambiguously to a function template”’ failed.

The remaining header files which do no compile for me are:
#include <boost/mpi.hpp>
#include <boost/python.hpp>

The issue with these header files is probably not related to clang
because they do not compile with gcc either.
(Something about required header files missing that I’ll probably hunt down sometime)

Should I close the bug reports that now appear to have been currently fixed?

Once all headers compile I’ll try to run the boost regression test-suite
to see what else can be shaken out.

Cheers,
Maurice

Hi,

today, llvm and clang actually links again on my Linux box so I decided

to

see how well clang currently does at compiling the boost headers.

It turns out that there remain only 7 top-level boost header files
that do not compile for me with the current version of clang.

Great news!

The remaining header files which do no compile for me are:
#include <boost/mpi.hpp>
#include <boost/python.hpp>

The issue with these header files is probably not related to clang
because they do not compile with gcc either.
(Something about required header files missing that I'll probably hunt

down

sometime)

Boost.MPI requires an MPI implementation like Open MPI[1].
Boost.Python requires a Python SDK. I think it has recently become
compatible with Python 3, but Python 2 is probably a safer bet.

[1] http://www.open-mpi.org/

Thanks for the information Sebastian.

Cheers,
Maurice

Hi,

today, llvm and clang actually links again on my Linux box so I decided to
see how well clang currently does at compiling the boost headers.

It turns out that there remain only 7 top-level boost header files
that do not compile for me with the current version of clang.

That's progress!

More specifically the toplevel header files:

#include <boost/regex.hpp>
#include <boost/unordered_set.hpp>
#include <boost/unordered_map.hpp>
#include <boost/dynamic_bitset.hpp>
#include <boost/asio.hpp>

do not yet compile with clang++ for me.

Compilation of the above header files all crash as a result of the following assertion failure.
// clang: SemaExpr.cpp:1521: clang::ASTOwningResult<&clang::ActionBase::DeleteExpr> clang::Sema::BuildDeclarationNameExpr(const clang::CXXScopeSpec&, clang::SourceLocation, clang::NamedDecl*): Assertion `!isa<FunctionTemplateDecl>(D) && "Cannot refer unambiguously to a function template"' failed.

I've now fixed this one.

Should I close the bug reports that now appear to have been currently fixed?

I think I've already done this. However, there's one remaining Boost-related issue that we know about:

  http://llvm.org/bugs/show_bug.cgi?id=6089

  - Doug

I’ve now fixed this one.

Great!

Should I close the bug reports that now appear to have been currently fixed?

I think I’ve already done this. However, there’s one remaining Boost-related issue that we know about:

After a quick svn update, there now remain only three top-level header files which do not
compile.

I seem to have found two new issues in the remaining header files.
I’ll double check and try to file bug reports when I get an opportunity.

Cheers,
Maurice

Thank you. The reduced test cases have been very helpful in getting these bugs fixed.

  • Doug