[PATCH] D37308: Interface class with uuid base record

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Mon Sep 11 08:07:55 PDT 2017


erichkeane added a comment.

By my reading of the code, you still haven't fixed this example:

  struct __declspec(uuid("00000000-0000-0000-C000-000000000046")) IUnknown {};
  struct IPropertyPageBase : public IUnknown {};
  struct IPropertyPage : public IPropertyPageBase {};
  
  __interface foo {};
  __interface bar {};
  __interface Prop2 : foo, bar, IUnknown{};
  
  __interface Prop3 : foo, Prop2{};

According to godbolt, all compile w/o error.



================
Comment at: lib/Sema/SemaDeclCXX.cpp:2394
+/// \brief Test if RD or its inhetited bases is an IUnknow type.
+static bool IsOrInheritsFromIUnknown(const CXXRecordDecl *RD) {
+  const CXXRecordDecl *Base =
----------------
See my example below, you still need to fix this.


https://reviews.llvm.org/D37308





More information about the cfe-commits mailing list