brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.1 KiB · cbb06da Raw
49 lines · cpp
1// RUN: %clang_cc1 -std=c++2a -triple %itanium_abi_triple -emit-llvm %s -o - | FileCheck %s2 3#include "Inputs/std-compare.h"4 5// CHECK: @_ZTV1A =6struct A;7struct X {8  // CHECK-SAME: @_ZN1X1xEv9  virtual void x();10  friend auto operator<=>(X, X) = default;11};12struct Y {13  virtual ~Y();14  virtual A &operator=(const A &);15  friend auto operator<=>(Y, Y) = default;16};17struct A : X, Y {18  // CHECK-SAME: @_ZN1A1fEv19  virtual void f();20  // CHECK-SAME: @_ZNKR1AssERKS_21  virtual std::strong_ordering operator<=>(const A &) const & = default;22  // CHECK-SAME: @_ZN1A1gEv23  virtual void g();24  // CHECK-SAME: @_ZN1A1hEv25  virtual void h();26 27  // CHECK-SAME: @_ZN1AaSERKS_28  // implicit virtual A &operator=(const A&) = default;29 30  // CHECK-SAME: @_ZN1AD1Ev31  // CHECK-SAME: @_ZN1AD0Ev32  // implicit virtual ~A();33 34  // CHECK-SAME: @_ZNKR1AeqERKS_35  // implicit virtual A &operator==(const A&) const & = default;36};37 38// For Y:39// CHECK-SAME: @_ZTI1A40 41// CHECK-SAME: @_ZThn{{[0-9]*}}_N1AD1Ev42// CHECK-SAME: @_ZThn{{[0-9]*}}_N1AD0Ev43// virtual ~Y();44 45// CHECK-SAME: @_ZThn{{[0-9]*}}_N1AaSERKS_46// virtual A &operator=(const A &);47 48void A::f() {}49