[PATCH] D123300: [Clang] Enable opaque pointers by default

Manoj Gupta via Phabricator via cfe-commits cfe-commits at lists.llvm.org
Thu Apr 14 17:59:33 PDT 2022


manojgupta added a comment.

We noticed a new crash that still repros at head.

clang -target armv7a-linux-gnueabihf -march=armv8a -mthumb -c -O2 file.cc

llvm-project/llvm/lib/Transforms/Vectorize/LoopVectorize.cpp:10135: llvm::Value *llvm::VPTransformState::get(llvm::VPValue *, unsigned int): Assertion `(isa<VPWidenIntOrFpInductionRecipe>(Def->getDef()) || isa<VPScalarIVStepsRecipe>(Def->getDef())) && "unexpected recipe found to be invariant"' failed.

   C
  struct b;
  struct c {
    using a = b *;
  };
  struct d {
    d(c::a);
  };
  struct g;
  struct i {
    typedef g *a;
  };
  struct g {
    typedef i::a e;
    e f;
  } * h;
  struct o {
    typedef g ::e e;
  };
  struct p;
  struct H {
    typedef g &a;
  };
  template <typename> struct q;
  template <typename bq> struct q<bq *> {
    static bq *bu(H::a r) {
      g &j = r;
      h = &j;
      return h;
    }
  };
  struct s : g {
    e cf() { return q<e>::bu(*this); }
  };
  struct t {
    s ck;
  };
  template <class cg> struct K {
    typedef cg bf;
    typedef typename bf::ce ce;
    struct cs {
      cs(bf) {}
      t cp;
    } co;
    K() : co(bf()) {
      typename ce::e k = co.cp.ck.cf();
      k->f = k;
    }
  };
  struct L {
    typedef K<p> a;
  };
  struct p {
    typedef o ce;
  };
  struct b : L::a {};
  struct M {
    int l;
    using m = b;
    d n{new m[l]};
  };
  void u() { new M; }


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D123300



More information about the cfe-commits mailing list