[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)
commit3e08f66bb0f46d1065671afb6357d9162213606e
tree735c6f985fd3a187d8ebaf2035689ff7bed77e75
parent345187338ed789c456f80a27d32620971dbe8871
[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

llvm-svn: 314557
clang/lib/AST/DeclCXX.cpp
clang/test/SemaCXX/ms-iunknown-template-function.cpp [new file with mode: 0644]
clang/test/SemaCXX/ms-iunknown.cpp