summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Support/SourceMgr.cpp
diff options
context:
space:
mode:
authorGreg Clayton <gclayton@apple.com>2015-06-15 20:17:18 +0000
committerGreg Clayton <gclayton@apple.com>2015-06-15 20:17:18 +0000
commit49e9010ca339099d23c56e768d0b0fcf40929719 (patch)
tree25f4c7a4186a183f0cbbe89c1e5811fc328242cc /llvm/lib/Support/SourceMgr.cpp
parentc30eae4567374237a942d277e6ff07d3285ca457 (diff)
downloadbcm5719-llvm-49e9010ca339099d23c56e768d0b0fcf40929719.tar.gz
bcm5719-llvm-49e9010ca339099d23c56e768d0b0fcf40929719.zip
Found an issue that was causing types to be completed much more often than they needed to be.
The problem is for lldb_private::Type instances that have encoding types (pointer/reference/const/volatile/restrict/typedef to type with user ID 0x123). If they started out with m_flags.clang_type_resolve_state being set to eResolveStateUnresolved (0), then when we would call Type::ResolveClangType(eResolveStateForward) we would complete the full type due to logic errors in the code. We now only complete the type if clang_type_resolve_state is eResolveStateLayout or eResolveStateFull and we correctly upgrade the type's current completion state to eResolveStateForward after we make a forward delcaration to the pointer/reference/const/volatile/restrict/typedef type instead of leaving it set to eResolveStateUnresolved. llvm-svn: 239752
Diffstat (limited to 'llvm/lib/Support/SourceMgr.cpp')
0 files changed, 0 insertions, 0 deletions
OpenPOWER on IntegriCloud