Hi, everyone. Today I was trying to build LLVM with libc++ and C++11 enabled, and I ran into this:
Basically, PBQP/Graph.h forward-declares classes, then tries to get iterators for std::lists of those classes. This is technically undefined behavior. I tried fudging with the order of declarations for a while, but gave up after realizing there's not an easy way out.
Is anyone else building LLVMCodeGen with libc++ and C++11? Is anyone else seeing this?
Yeah, I think Lang (author of PBQP) came across this at some point.
We've discussed it & we didn't immediately come up with any great idea
of how to solve it... certainly something that still needs some
thought (& ultimately, a fix ;))
I was hitting this problem a while ago, but it's not reproducible when compiling llvm with clang trunk and libc++ trunk.
This is a known issue with the current PBQP data structures. I’m working on an overhaul of the PBQP allocator at the moment which should address this.
I think I’ve fixed this issue with r166484. Let me know if you run into further problems building PBQP with libc++ and C++11.
Seems to be working. Thanks, Lang!