Symbol streams and type streams have the same format, and it's possible we might find other types of "things" that have similar formats as well. So rather than reproduce the code, we templatize TypeIterator on the type enumeration kind, and allow it to iterate over arbitrary streams of similarly laid out records.
Details
Diff Detail
Event Timeline
lgtm
include/llvm/DebugInfo/CodeView/RecordIterator.h | ||
---|---|---|
20 | Maybe call the template parameter RecordKind or KindType so you can call the Record field Kind instead of Type? | |
113–114 | // end namespace codeview / llvm? | |
include/llvm/DebugInfo/CodeView/TypeRecord.h | ||
275 | Once upon a type, TypeRecord was an actual class. With TypeRecordPrefix gone, the last vestiges of it are gone. Can you replace TypeRecord with "type record" here? |
Looks like this CL broke CMake buildbot - http://lab.llvm.org:8011/builders/lldb-x86_64-ubuntu-14.04-cmake/builds/14464, could you take a look?
I just noticed this problem on powerpc as well:
In file included from /home/seurer/llvm/llvm-test/include/llvm/DebugInfo/CodeView/SymbolRecord.h:14:0,
from /home/seurer/llvm/llvm-test/lib/MC/MCCodeView.cpp:19:
/home/seurer/llvm/llvm-test/include/llvm/DebugInfo/CodeView/RecordIterator.h:15:33: fatal error: llvm/support/Endian.h: No such file or directory
seurer@makalu-lp1:~/llvm/build/llvm-test$ find $LLVM_SRC -name Endian.h
/home/seurer/llvm/llvm-test/include/llvm/Support/Endian.h
Note "support" (incorrect) versus "Support" (correct).
Maybe call the template parameter RecordKind or KindType so you can call the Record field Kind instead of Type?