This appears to be related to Sun bug http://bugs.sun.com/view_bug.do?bug_id=6906118
but is sufficiently different that the workaround suggested there doesn't apply.
Compiling DAllocator.h produces the following fatal error:
"DAllocator.h", line 86: Error: Unexpected type name "AllocPoolDescriptor" encountered.
"DAllocator.h", line 87: Error: Unexpected type name "AllocDescriptor" encountered.
It can be worked around by reverting:
@@ -83,8 +83,8 @@
- SList(AllocPoolDescriptor,link) pools;
- Que(AllocDescriptor,link) free_list;
+ SLL<AllocPoolDescriptor> pools;
+ Queue<AllocDescriptor> free_list;
Expanding that with the -E option to CC reveals that this loses an offsetof argument, so if we could fix the offset to zero then the problem goes away. If at all possible, it would be good to make "link" the first element of AllocDescriptor and AllocPoolDescriptor so the need for offsetof goes away.