I just tried castxml as a possible replacement for gccxml. It crashes, but I have no idea how to track down the problem. This with llvm/clang 3.6 at r225216 installed via MacPorts.
> lldb /usr/local/bin/castxml
(lldb) target create "/usr/local/bin/castxml"
Current executable set to '/usr/local/bin/castxml' (x86_64).
(lldb) r -v -x c++ --castxml-gccxml -iwithprefix /opt/local/libexec/llvm-3.6/lib/c++/v1 -I"." -I"/Users/mmoll/omplapp/ompl/src" -I"/Users/mmoll/omplapp/src" -I"/opt/local/Library/Frameworks/Python.framework/Versions/3.4/include/python3.4m" -I"/opt/local/include" -I"/opt/local/include" "bindings/util.h" -o=foo.xml
Process 4223 launched: '/usr/local/bin/castxml' (x86_64)
clang version 3.6.0 (trunk 225216)
Target: x86_64-apple-darwin14.0.0
Thread model: posix
clang -cc1 version 3.6.0 based upon LLVM 3.6.0svn default target x86_64-apple-darwin14.0.0
ignoring nonexistent directory "/usr/local/include/c++/v1"
ignoring nonexistent directory "/usr/include/c++/v1"
ignoring duplicate directory "/opt/local/include"
#include "..." search starts here:
#include <...> search starts here:
.
/Users/mmoll/omplapp/ompl/src
/Users/mmoll/omplapp/src
/opt/local/Library/Frameworks/Python.framework/Versions/3.4/include/python3.4m
/opt/local/include
/usr/local/include
/usr/local/share/castxml/clang/include
/usr/include
/System/Library/Frameworks (framework directory)
/Library/Frameworks (framework directory)
/opt/local/libexec/llvm-3.6/lib/c++/v1
End of search list.
Process 4223 stopped
* thread #1: tid = 0x337c7, 0x000000010001b82c castxml`clang::FunctionType::getReturnType(this=0x0000000000000000) const + 12 at Type.h:2823, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x18)
frame #0: 0x000000010001b82c castxml`clang::FunctionType::getReturnType(this=0x0000000000000000) const + 12 at Type.h:2823
2820 unsigned getTypeQuals() const { return FunctionTypeBits.TypeQuals; }
2821
2822 public:
-> 2823 QualType getReturnType() const { return ResultType; }
2824
2825 bool getHasRegParm() const { return getExtInfo().getHasRegParm(); }
2826 unsigned getRegParmType() const { return getExtInfo().getRegParm(); }
(lldb) bt
* thread #1: tid = 0x337c7, 0x000000010001b82c castxml`clang::FunctionType::getReturnType(this=0x0000000000000000) const + 12 at Type.h:2823, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x18)
* frame #0: 0x000000010001b82c castxml`clang::FunctionType::getReturnType(this=0x0000000000000000) const + 12 at Type.h:2823
frame #1: 0x00000001000129db castxml`ASTVisitor::AddDumpNode(this=0x00007fff5fbfd1b0, d=0x0000000105175eb0, complete=true) + 427 at Output.cxx:448
frame #2: 0x0000000100013794 castxml`ASTVisitor::AddDeclContextMembers(this=0x00007fff5fbfd1b0, dc=0x0000000105175e80, emitted=0x00007fff5fbfcbb8) + 756 at Output.cxx:669
frame #3: 0x0000000100013768 castxml`ASTVisitor::AddDeclContextMembers(this=0x00007fff5fbfd1b0, dc=0x000000010302f4e0, emitted=0x00007fff5fbfcbb8) + 712 at Output.cxx:654
frame #4: 0x000000010001952b castxml`ASTVisitor::PrintMembersAttribute(this=0x00007fff5fbfd1b0, dc=0x000000010302f4e0) + 139 at Output.cxx:983
frame #5: 0x0000000100017c39 castxml`ASTVisitor::OutputTranslationUnitDecl(this=0x00007fff5fbfd1b0, d=0x000000010302f4c0, dn=0x0000000105988ae8) + 313 at Output.cxx:1223
frame #6: 0x0000000100014fbe castxml`ASTVisitor::OutputDecl(this=0x00007fff5fbfd1b0, d=0x000000010302f4c0, dn=0x0000000105988ae8) + 1710 at DeclNodes.inc:473
frame #7: 0x00000001000148b4 castxml`ASTVisitor::ProcessQueue(this=0x00007fff5fbfd1b0) + 660 at Output.cxx:729
frame #8: 0x000000010001b34c castxml`ASTVisitor::HandleTranslationUnit(this=0x00007fff5fbfd1b0, tu=0x000000010302f4c0) + 620 at Output.cxx:1681
frame #9: 0x000000010001b41d castxml`outputXML(ci=0x0000000102e07530, ctx=0x0000000103028000, os=0x0000000102e0a0f0, opts=0x00007fff5fbfedc8) + 125 at Output.cxx:1706
frame #10: 0x000000010003b5e0 castxml`ASTConsumer::HandleTranslationUnit(this=0x0000000102e0f310, ctx=0x0000000103028000) + 336 at RunClang.cxx:122
frame #11: 0x0000000100220b3c castxml`clang::ParseAST(S=0x000000010304a200, PrintStats=false, SkipFunctionBodies=<unavailable>) + 391 at ParseAST.cpp:151
frame #12: 0x00000001000e4ab5 castxml`clang::FrontendAction::Execute(this=<unavailable>) + 67 at FrontendAction.cpp:428
frame #13: 0x00000001000c119b castxml`clang::CompilerInstance::ExecuteAction(this=0x0000000102e07530, Act=0x0000000102e08600) + 547 at CompilerInstance.cpp:811
frame #14: 0x0000000100038a8e castxml`runClangCI(CI=0x0000000102e07530, opts=0x00007fff5fbfedc8) + 862 at RunClang.cxx:253
frame #15: 0x0000000100037626 castxml`runClangImpl(argBeg=0x00007fff5fbfe8f8, argEnd=0x00007fff5fbfe960, opts=0x00007fff5fbfedc8) + 4486 at RunClang.cxx:338
frame #16: 0x0000000100036428 castxml`runClang(argBeg=0x00007fff5fbff128, argEnd=0x00007fff5fbff190, opts=0x00007fff5fbfedc8) + 3112 at RunClang.cxx:409
frame #17: 0x00000001000045d4 castxml`main(argc_in=15, argv_in=0x00007fff5fbff478) + 6052 at castxml.cxx:262
frame #18: 0x00007fff8766c5c9 libdyld.dylib`start + 1
frame #19: 0x00007fff8766c5c9 libdyld.dylib`start + 1
(lldb)