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

Martin Storsjö via Phabricator via llvm-commits llvm-commits at lists.llvm.org
Tue Apr 12 00:32:02 PDT 2022


mstorsjo added a comment.

This triggered (or exposed) assertion failures:

  $ cat inlinecost.cpp
  typedef char a;
  typedef unsigned b;
  typedef int c;
  typedef struct {
    b d[];
  } e;
  e f(void *) {}
  typedef void *fptr;
  fptr g;
  template <typename, typename, typename, typename> void h(fptr i) {
    int (*j)(const void *) = (int (*)(const void *))i;
    j(g);
  }
  template <typename, typename> void k(b, b, b, const char *) {
    h<long, long, c, int>(fptr(f));
  }
  template void k<c, a>(b, b, b, const char *);
  $ clang -target x86_64-linux-gnu -c inlinecost.cpp -O2
  clang: ../lib/Analysis/InlineCost.cpp:2595: llvm::InlineResult {anonymous}::CallAnalyzer::analyze(): Assertion `CAI != CandidateCall.arg_end()' failed.


Repository:
  rG LLVM Github Monorepo

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

https://reviews.llvm.org/D123300



More information about the llvm-commits mailing list