blob: 6818f81ccffa53b4c87a622ad0df703b3de174e7 [file] [log] [blame]
// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.
// See https://llvm.org/LICENSE.txt for license information.
// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception
// RUN: cxx_compiler cxx_11 -c %s -o %t.o
// RUN: bindump %t.o | FileCheck prefixes %s
// CHECK-DAG: _ZdlPv
void operator delete(void *) {}
// CHECK-DAG: _ZdaPv
void operator delete[](void *) {}
// General structures for operands.
struct operand {};
struct operations {
void operator= (operand);
void operator->* (operand);
void operator-> ();
void operator() (operand);
void operator[] (operand);
};
// CHECK-DAG: _Zps7operand
void operator+ (operand) {}
// CHECK-DAG: _Zng7operand
void operator- (operand) {}
// CHECK-DAG: _Zad7operand
void operator& (operand) {}
// CHECK-DAG: _Zde7operand
void operator* (operand) {}
// CHECK-DAG: _Zco7operand
void operator~ (operand) {}
// CHECK-DAG: _Zpl7operandS_
void operator+ (operand, operand) {}
// CHECK-DAG: _Zmi7operandS_
void operator- (operand, operand) {}
// CHECK-DAG: _Zml7operandS_
void operator* (operand, operand) {}
// CHECK-DAG: _Zdv7operandS_
void operator/ (operand, operand) {}
// CHECK-DAG: _Zrm7operandS_
void operator% (operand, operand) {}
// CHECK-DAG: _Zan7operandS_
void operator& (operand, operand) {}
// CHECK-DAG: _Zor7operandS_
void operator| (operand, operand) {}
// CHECK-DAG: _Zeo7operandS_
void operator^ (operand, operand) {}
// CHECK-DAG: _ZN10operationsaSE7operand
void operations::operator= (operand) {}
// CHECK-DAG: _ZpL7operandS_
void operator+= (operand, operand) {}
// CHECK-DAG: _ZmI7operandS_
void operator-= (operand, operand) {}
// CHECK-DAG: _ZmL7operandS_
void operator*= (operand, operand) {}
// CHECK-DAG: _ZdV7operandS_
void operator/= (operand, operand) {}
// CHECK-DAG: _ZrM7operandS_
void operator%= (operand, operand) {}
// CHECK-DAG: _ZaN7operandS_
void operator&= (operand, operand) {}
// CHECK-DAG: _ZoR7operandS_
void operator|= (operand, operand) {}
// CHECK-DAG: _ZeO7operandS_
void operator^= (operand, operand) {}
// CHECK-DAG: _Zls7operandS_
void operator<< (operand, operand) {}
// CHECK-DAG: _Zrs7operandS_
void operator>> (operand, operand) {}
// CHECK-DAG: _ZlS7operandS_
void operator<<= (operand, operand) {}
// CHECK-DAG: _ZrS7operandS_
void operator>>= (operand, operand) {}
// CHECK-DAG: _Zeq7operandS_
void operator== (operand, operand) {}
// CHECK-DAG: _Zne7operandS_
void operator!= (operand, operand) {}
// CHECK-DAG: _Zlt7operandS_
void operator< (operand, operand) {}
// CHECK-DAG: _Zgt7operandS_
void operator> (operand, operand) {}
// CHECK-DAG: _Zle7operandS_
void operator<= (operand, operand) {}
// CHECK-DAG: _Zge7operandS_
void operator>= (operand, operand) {}
// CHECK-DAG: _Znt7operand
void operator! (operand) {}
// CHECK-DAG: _Zaa7operandS_
void operator&& (operand, operand) {}
// CHECK-DAG: _Zoo7operandS_
void operator|| (operand, operand) {}
// CHECK-DAG: _Zpp7operand
void operator++ (operand) {}
// CHECK-DAG: _Zmm7operand
void operator-- (operand) {}
// CHECK-DAG: _Zcm7operandS_
void operator, (operand, operand) {}
// CHECK-DAG: _ZN10operationspmE7operand
void operations::operator->* (operand) {}
// CHECK-DAG: _ZN10operationsptE
void operations::operator-> () {}
// CHECK-DAG: _ZN10operationsclE7operand
void operations::operator() (operand) {}
// CHECK-DAG: _ZN10operationsixE7operand
void operations::operator[] (operand) {}
struct Type {};
struct castable {
operator float();
operator char const *();
operator Type();
};
// CHECK-DAG: _ZN8castablecvfEv
castable::operator float() { return 1.0f; }
// CHECK-DAG: _ZN8castablecvPKcEv
castable::operator char const*() { return "this"; }
// CHECK-DAG: _ZN8castablecv4TypeEv
castable::operator Type() { return Type(); }