[PATCH] D156201: [ASTImporter] Fix corrupted RecordLayout introduced by circular referenced fields

Ding Fei via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Jul 27 21:42:44 PDT 2023


danix800 added inline comments.


================
Comment at: clang/lib/AST/ASTImporter.cpp:7403
+  UO->setOperatorLoc(ToOperatorLoc);
+  UO->setCanOverflow(E->canOverflow());
+
----------------
danix800 wrote:
> shafik wrote:
> > I don't see the following values from the old code used: `E->getValueKind()`, `E->getObjectKind()` and `E->getFPOptionsOverride()`
> These three values are set for all Exprs in `Import(Stmt *FromS)`:
> 
> ```
> Expected<Stmt *> ASTImporter::Import(Stmt *FromS) {
>   // ...
>   if (auto *ToE = dyn_cast<Expr>(*ToSOrErr)) {
>     auto *FromE = cast<Expr>(FromS);
>     // Copy ExprBitfields, which may not be handled in Expr subclasses
>     // constructors.
>     ToE->setValueKind(FromE->getValueKind());
>     ToE->setObjectKind(FromE->getObjectKind());
>     ToE->setDependence(FromE->getDependence());
>   }
>   // ...
> }
> ```
Oh only the first two are set, `FPOptionsOverride` is missing! I'll fix that.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D156201



More information about the cfe-commits mailing list