aboutsummaryrefslogtreecommitdiff
path: root/clang/test/CodeGen/RISCV/issue-129995.cpp
blob: 4cd60a854558e7e140dba738d4aade17694e2f77 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// RUN: %clang_cc1 -triple riscv64 -emit-llvm -target-feature +m -target-feature +v -target-abi lp64d -o /dev/null %s

struct a {
  using b = char __attribute__((vector_size(sizeof(char))));
};
class c {
  using d = a::b;
  d e;

public:
  static c f();
};
class g {
public:
  template <class h> g(h);
  friend g operator^(g, g) { c::f; }
  friend g operator^=(g i, g j) { i ^ j; }
};
template <typename, int> using k = g;
template <typename l> using m = k<l, sizeof(l)>;
void n() {
  void o();
  m<char> p = o ^= p;
}