[RISCV] Simplify usage of SplatPat_simm5_plus1. NFC (#125340)
[llvm-project.git] / clang / test / SemaCXX / eval-crashes.cpp
blob21e05f19be0caa709f3981b743726d80a8e0aeb3
1 // RUN: %clang_cc1 -std=c++1z -verify %s
3 namespace 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};
15 namespace pr33140_0a {
16 struct S {
17 constexpr S(const int &a = 0) {}
19 void foo(void) { S s[2] = {}; }
22 namespace pr33140_0b {
23 bool bar(float const &f = 0);
24 bool foo() { return bar() && bar(); }
27 namespace pr33140_2 {
28 struct A { int &&r = 0; };
29 struct B { A x, y; };
30 B b = {};
33 namespace pr33140_3 {
34 typedef struct Y { unsigned int c; } Y_t;
35 struct X {
36 Y_t a;
38 struct X foo[2] = {[0 ... 1] = {.a = (Y_t){.c = 0}}}; // expected-warning {{C99 extension}}
41 namespace 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;
51 namespace pr33140_10 {
52 int a(const int &n = 0);
53 bool b() { return a() == a(); }
56 namespace GH67317 {
57 struct array {
58 int (&data)[2];
59 array() : data(*new int[1][2]) {}
63 namespace GH96670 {
64 inline constexpr long ullNil = -1;
66 template<typename T = long, const T &Nil = ullNil>
67 struct Test {};
69 inline constexpr long lNil = -1;
70 Test<long, lNil> c;