brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.3 KiB · 21e05f1 Raw
72 lines · cpp
1// RUN: %clang_cc1 -std=c++1z -verify %s2 3namespace pr32864_0 {4  struct transfer_t {5    void *fctx;6  };7  template <typename Ctx> class record {8    void run() {9      transfer_t t;10      Ctx from{t.fctx};11    }12  };13}14 15namespace pr33140_0a {16  struct S {17    constexpr S(const int &a = 0) {}18  };19  void foo(void) { S s[2] = {}; }20}21 22namespace pr33140_0b {23  bool bar(float const &f = 0);24  bool foo() { return bar() && bar(); }25}26 27namespace pr33140_2 {28  struct A { int &&r = 0; };29  struct B { A x, y; };30  B b = {};31}32 33namespace pr33140_3 {34  typedef struct Y { unsigned int c; } Y_t;35  struct X {36    Y_t a;37  };38  struct X foo[2] = {[0 ... 1] = {.a = (Y_t){.c = 0}}}; // expected-warning {{C99 extension}}39}40 41namespace pr33140_6 {42  struct Y { unsigned int c; };43  struct X { struct Y *p; };44  int f() {45    // FIXME: This causes clang to crash.46    //return (struct X[2]){ [0 ... 1] = { .p = &(struct Y&)(struct Y&&)(struct Y){0} } }[0].p->c;47    return 0;48  }49}50 51namespace pr33140_10 {52  int a(const int &n = 0);53  bool b() { return a() == a(); }54}55 56namespace GH67317 {57struct array {58  int (&data)[2];59  array() : data(*new int[1][2]) {}60};61}62 63namespace GH96670 {64inline constexpr long ullNil = -1;65 66template<typename T = long, const T &Nil = ullNil>67struct Test {};68 69inline constexpr long lNil = -1;70Test<long, lNil> c;71}72