https://gcc.gnu.org/bugzilla/show_bug.cgi?id=67888
--- Comment #1 from Craig Rodrigues <rodrigc at gcc dot gnu.org> --- I was able to work around this problem in two ways, as I mentioned on the cfe-dev mailing list for LLVM: http://lists.llvm.org/pipermail/cfe-dev/2015-October/045336.html (1) Patch Module.cpp to move "struct Visitor" outside of VisibleModuleSet::setVisible() OR (2) Add -fpermissive to command-line clang can compile this with no problem, so I am filing the bug here.