forked from OSchip/llvm-project
9b3932c0bc
following amusing sequence: - AST writing schedules writing a type X* that it had never seen before - AST writing starts writing another declaration, ends up deserializing X* from a prior AST file. Now we have two type IDs for the same type! - AST writer tries to write X*. It only has the lower-numbered ID from the the prior AST file, so references to the higher-numbered ID that was scheduled for writing go off into lalaland. To fix this, keep the higher-numbered ID so we end up writing the type twice. Since this issue occurs so rarely, and type records are generally rather small, I deemed this better than the alternative: to keep a separate mapping from the higher-numbered IDs to the lower-numbered IDs, which we would end up having to check whenever we want to deserialize any type. Fixes <rdar://problem/8511624>, I think. llvm-svn: 115647 |
||
---|---|---|
.. | ||
CIndex.cpp | ||
CIndexCXX.cpp | ||
CIndexCodeCompletion.cpp | ||
CIndexDiagnostic.cpp | ||
CIndexDiagnostic.h | ||
CIndexInclusionStack.cpp | ||
CIndexUSRs.cpp | ||
CIndexer.cpp | ||
CIndexer.h | ||
CMakeLists.txt | ||
CXCursor.cpp | ||
CXCursor.h | ||
CXSourceLocation.h | ||
CXType.cpp | ||
CXType.h | ||
Makefile | ||
libclang.darwin.exports | ||
libclang.exports |