Build broken on MSVC 9.0

Hi *,

at the moment the build of clang is broken on MSVC 9.0 (according to
buildbot http://google1.osuosl.org:8011/console at least since
2010-02-06 01:02:15) due to some strange template name lookup
problems.,

97>FlatStore.cpp
97>D:\public\zorg\buildbot\osuosl\slave\clang-i686-xp-msvc9\llvm\include\llvm/ADT/ImmutableIntervalMap.h(98)
: error C3861: 'MarkImmutable': identifier not found
97> D:\public\zorg\buildbot\osuosl\slave\clang-i686-xp-msvc9\llvm\include\llvm/ADT/ImmutableIntervalMap.h(96)
: while compiling class template member function
'llvm::ImutAVLTree<ImutInfo>
*llvm::ImutIntervalAVLFactory<ImutInfo>::Add(llvm::ImutAVLTree<ImutInfo>
*,const std::pair<_Ty1,_Ty2> &)'
97> with
97> [
97> ImutInfo=llvm::ImutIntervalInfo<clang::SVal>,
97> _Ty1=llvm::Interval,
97> _Ty2=clang::SVal
97> ]
97> D:\public\zorg\buildbot\osuosl\slave\clang-i686-xp-msvc9\llvm\include\llvm/ADT/ImmutableIntervalMap.h(203)
: see reference to class template instantiation
'llvm::ImutIntervalAVLFactory<ImutInfo>' being compiled
97> with
97> [
97> ImutInfo=llvm::ImutIntervalInfo<clang::SVal>
97> ]
97> ..\..\..\..\..\tools\clang\lib\Checker\FlatStore.cpp(23) :
see reference to class template instantiation
'llvm::ImmutableIntervalMap<ValT>::Factory' being compiled
97> with
97> [
97> ValT=clang::SVal
97> ]

Apparently all of ImutIntervalAVLFactory public base class
ImutAVLFactory protected member methods resolve to "identifier not
found".

Attached patch fixes that issue.

Best regards,

Thomas Veith

IIM.patch (3.56 KB)