]> granicus.if.org Git - clang/commit
[Sema] Correct IUnknown to support Unknwnbase.h Header.
authorErich Keane <erich.keane@intel.com>
Fri, 29 Sep 2017 21:06:00 +0000 (21:06 +0000)
committerErich Keane <erich.keane@intel.com>
Fri, 29 Sep 2017 21:06:00 +0000 (21:06 +0000)
commit06fad44fa9fdcac7a07863c6820e087ae9e399c2
treee5b331c0d360a861d7ddf4da3cfcd6afa735ddfa
parentdfca37075ed6c5fd67537a7dd0cbac987af46849
[Sema] Correct IUnknown to support Unknwnbase.h Header.

Apparently, the MSVC SDK has a strange implementation that
causes a number of implicit functions as well as a template member
function of the IUnknown type. This patch allows these as InterfaceLike
types as well.

Additionally, it corrects the behavior where extern-C++ wrapped around an
Interface-Like type would permit an interface-like type to exist in a namespace.

Differential Revision: https://reviews.llvm.org/D38303

git-svn-id: https://llvm.org/svn/llvm-project/cfe/trunk@314557 91177308-0d34-0410-b5e6-96231b3b80d8
lib/AST/DeclCXX.cpp
test/SemaCXX/ms-iunknown-template-function.cpp [new file with mode: 0644]
test/SemaCXX/ms-iunknown.cpp