[PATCH] D135025: [clang][Interp] Support base class constructors

Erich Keane via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Tue Oct 4 07:57:53 PDT 2022


erichkeane added inline comments.


================
Comment at: clang/lib/AST/Interp/ByteCodeExprGen.h:263
+    QualType T = E->getType();
+    if (const auto *PT = dyn_cast<PointerType>(T))
+      T = PT->getPointeeType();
----------------
We are de-pointering here, why not de-referencing? 

If we are OK with that, we can do this as:

``` if (const auto *RD = T->getPointeeCXXRecordDecl()) 
      return RD;
    return T->getAsCXXRecordDecl();
```
and most of the work is done for you.



================
Comment at: clang/test/AST/Interp/records.cpp:165
+
+class A : public Base {
+public:
----------------
shafik wrote:
> How about also testing `private` and `virtual` as well as multiple bases.
I like the idea of testing virtual bases as well.


CHANGES SINCE LAST ACTION
  https://reviews.llvm.org/D135025/new/

https://reviews.llvm.org/D135025



More information about the cfe-commits mailing list